數(shù)據(jù)類型運算符流程控制語句

JavaScript定義了幾種數(shù)據(jù)類型?哪些是原始類型?哪些是復(fù)雜類型?原始類型和復(fù)雜類型的區(qū)別?

數(shù)據(jù)類型:

  1. 數(shù)值,number
  2. 字符串,string
  3. 布爾值,boolean,true or false
  4. 對象,object
  5. undefined,未定義,表示沒有值
  6. null,空缺,表示應(yīng)該有值,但為空

原始類型:數(shù)值,字符串,布爾值
復(fù)雜類型:對象

區(qū)別
原始類型是最基本的數(shù)據(jù)類型,不能再細分了,而復(fù)雜類型是若干個原始類型組合而成的。

typeof和instenceof的作用和區(qū)別?

作用:確定一個值的數(shù)據(jù)類型。
區(qū)別:
對于用typeof判斷數(shù)據(jù)類型的時候,對于任何對象類型都會返回object,遇到函數(shù)會返回function。
instenseof是用于判斷一個對象是不是另一個對象的實例。

如何判斷一個變量是否是數(shù)字,字符串,布爾值,函數(shù)。

直接用typeof判斷,例:

var a = 1
var b = '1'
var c = true
function f(){}

typeof a //number
typeof b //string
typeof c //boolean
typeof f //function

NaN是什么?有什么特別之處?

NaN,not a number,表示不是數(shù)字的數(shù)字。
NaN !== NaN
NaN與任何數(shù)的運算結(jié)果都為NaN

如何把非數(shù)值轉(zhuǎn)換為數(shù)值?

使用Number();parseInt();parseFloat()

==和===有什么區(qū)別?

==,相等運算符,在比較兩個值的時候,會進行類型轉(zhuǎn)換,然后在進行比較,所以會出現(xiàn):

1 == "1" //true
1 == true // true
'' == false //true

===,嚴(yán)格相等運算符,不會進行類型轉(zhuǎn)換,類型數(shù)值都相等才會返回true。

break 和 continue 有什么區(qū)別?

break,中斷,在循環(huán)中用于中斷循環(huán)
continue,跳過,在循環(huán)中,跳過當(dāng)前結(jié)果,繼續(xù)循環(huán)

void 0 和undefined在使用場景上有什么區(qū)別?

void,運算符,執(zhí)行一個表達式,返回undefined
undefined,用于存放JavaScript和undefined的值,表示值為不存在
void 0一定會返回一個undefined,而undefined可能會被賦值,而不為undefined。

以下代碼輸出的結(jié)果是?為什么?

console.log(1+1);
console.log("2"+"4");
console.log(2+"4");
console.log(+"4");

2 直接數(shù)字的數(shù)學(xué)運算
"24" 字符串的拼接
"24" 有字符串時,加號會把數(shù)字轉(zhuǎn)換成字符串,然后拼接
4 單一字符串時,加號會把字符串"4"轉(zhuǎn)換為數(shù)字4

以下輸出結(jié)果是?

var a = 1;
a+++a;
typeof a+2;

結(jié)果:3;"number2"
解釋:a++在運算過后自增1 ,所以a++為1,之后a為2,1+2=3;
typeof的優(yōu)先級比“+”高,先算typeof a ,得到"number",再運算加法。

以下代碼輸出的結(jié)果是?為什么?

var a = 1;
var b = 3;
console.log(a+++b);

結(jié)果:4
解釋:a++在計算之后才自增1,計算時仍為1。

遍歷數(shù)組,把數(shù)組里的打印數(shù)組每一項的平方

var arr = [3,4,5]

答:

for (i = 0;i<arr.length;i++){console.log(arr[i]*arr[i])}

遍歷JSON,打印里面的值

var obj = {
  name: 'hunger',
  sex: 'male',
  age: 28
}

答:

for(var key in obj){console.log(obj[key])}

以下代碼輸出結(jié)果是什么?為什么?

var a = 1,b = 2,c = 3;
var val = typeof a + b || c > 0
console.log(val)

var d = 5;
var data = d == 5 && console.log('bb')
console.log(data)

var data2 = d = 0 || console.log('haha')
console.log(data2)

var x = ! "hello" + (! "world" , !! "from here!!");
console.log(x)

運算符優(yōu)先級(降序)
! typeof + == && || = ,

  1. "number2",邏輯符運算符的“短路”特性,對于||,左邊為真,則后面不計算,返回左邊的值,字符串"number2"

  2. 'bb',對于&&,左邊為真,計算后面,并返回后面的值。

  3. 'haha',對于||,左邊為假,計算后面,并返回后面的值。

  4. 1,","忽略第一個操作數(shù),返回第二個操作數(shù)true,!"hello"為false,對于加號+,會將布爾值轉(zhuǎn)換成數(shù)字,true為1,false為0,0+1=1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容