第三章--数据类型
3.4--數(shù)據(jù)類型
數(shù)據(jù)類型分為 boolean , string, object , function , number,undefinde
?
3.4.1--typeof 操作符
typeof 操作符在safari5,chrome7以及之前版本 會(huì)將正則表達(dá)式 返回為"function",而在其他瀏覽器會(huì)返回"object"
console.log(typeof null);var message = "some string"; console.log(typeof message); console.log(typeof 95);3.4.2--undefined類型
var message_2; console.log(message_2); console.log(message_2 == undefined); //truevar message = undefined; console.log(message); //true3.4.3--null類型
從邏輯角度講,null是一個(gè)空對(duì)象指針,而這正是null類型為"object"的原因了
var car = null; console.log(typeof car); //object實(shí)際上undefined值是派生于null值的,所以在ECMA-262相等測試返回true
console.log(null == undefined); //true3.4.4--boolean值
var message_4 = "hellow world"; console.log(Boolean(message_4)); //true任何非空字符串的boolean值為true , ""(字符串)為false
任何非零數(shù)字值的boolean值為true , 0和NaN(not a number)為false
任何oject對(duì)象的boolean值為true , null為false
任何n/a的undefined的boolean值為true , undefined 為false
3.4.5--Number類型
number 支持 八進(jìn)制 和 十六進(jìn)制的表示,所有八進(jìn)制和十六進(jìn)制表示的數(shù)值最終會(huì)轉(zhuǎn)成十進(jìn)制的數(shù)值表示
var intnum = 55; // 整數(shù)55 var octalnum = 070; //解析結(jié)果八進(jìn)制的56 var octalnum_1 = 079; // 無效的八進(jìn)制--解析為79 var hexNum = 0xA; //解析為十六進(jìn)制的10 var hexNum_1 = 0x1f; //解析為十六進(jìn)制的311.浮點(diǎn)數(shù)值
基于IEEE754格式來計(jì)算
2.數(shù)值范圍
?
Number.MIN_VALUE? 表示最小值5e-324
Number.MAX_VALUE? 表示最大值1.7976931348623157e+308
超過以上兩個(gè)數(shù)值會(huì)轉(zhuǎn)換成 Infinity 和 –Infinity
?
?
3.NaN--not a number
isNaN(10); //false isNaN("blue") // true isNaN(NaN) //true isNaN(true) // false 可以轉(zhuǎn)換成1?
4.數(shù)值轉(zhuǎn)換
var num1 = parseInt("123blue"); // 結(jié)果為123 var num2 = parseInt(""); // NaN var num3 = parseInt(0x1f); //31 var num4 = parseInt("AF", 16) // 表示AF的十六進(jìn)制,第二個(gè)參數(shù)為幾進(jìn)制 var num5 = parseInt("AF") // NaN var num6 = parseInt("10", 2) //2(10的二進(jìn)制解析) var num7 = parseInt("10", 8) // 8 (10的八進(jìn)制解析) var num8 = parseFloat("0908.5") // 908.5會(huì)忽略前面的零 console.log(num8)?
3.4.6—String
用string()方法可以把一個(gè)值轉(zhuǎn)換為字符串
var value =11; console.log(String(value)) //"11"?
3.5操作符
有遞增操作符++ ,遞減操作符--
var age = 29; age++//30 var age_2 = --age; //遞減操作符要放在前面 console.log(age_2)3.5.3--boolean操作符
!為邏輯非操作符(取相反值)
&&為邏輯與操作符(并且的意思),兩個(gè)為true才可以為true,有一個(gè)false都不行
||為邏輯或操作符(或者的意思),有一個(gè)為true就可以。
?
3.5.5--加法操作符
?
字符串加數(shù)字,ECMAscript會(huì)將數(shù)字轉(zhuǎn)換成字符串進(jìn)行并接
如果想將計(jì)算結(jié)果加入字符串,就把數(shù)值執(zhí)行加(),先執(zhí)行求值再并接。
var result = (5) + "5"; var num1 = 10; var num2 = 20; var num3 = "The result is " + (num1 + num2) console.log()?
3.5.6--關(guān)系操作符
// 如果比較兩個(gè)值為數(shù)值的話,就按照正常大小比較 var result = 1 > 2; //false // 如果兩個(gè)值為字符串的話,就按照字符串編碼值比較 var result_2 = "Brick" < "alphate"; // true var result_3 = "23" > "3"; false // 如果一個(gè)值為數(shù)值,一個(gè)值為字符串,則轉(zhuǎn)字符串為數(shù)值作為比較,如果轉(zhuǎn)不了數(shù)值就轉(zhuǎn)為NaN var result_4 = 23 > "3"; //true var result_5 = 23 > "a"; //false //如果數(shù)值和Boolean值進(jìn)行比較就降Boolean值轉(zhuǎn)為數(shù)值進(jìn)行比較 var result_6 = 23 > false; //true //如果數(shù)值和Object進(jìn)行比較,就把Object用ValueOf()方法或者用toString()方法轉(zhuǎn)換進(jìn)行比較 var result_7 = 23 > null; //true //相等== 和 全等=== ,相等是把兩個(gè)操作數(shù)轉(zhuǎn)換再比較,全等是兩個(gè)操作數(shù)不轉(zhuǎn)換來比較 //任何操作數(shù)和NaN比較都返回false var result_8 = ("23" == 23); //true var result_12 = (55 === "55"); //false var result_9 = (null == undefined); //true var result_10 = (null === undefined); //false var result_11 = (NaN == NaN); // false var result_13 = (NaN == 1); //false3.5.10--都好操作符
可以一次聲明多個(gè)變量。 用于賦值時(shí),逗號(hào)操作符會(huì)返回最后一項(xiàng)
轉(zhuǎn)載于:https://www.cnblogs.com/wrong-w/p/5403362.html
總結(jié)
- 上一篇: NOIP 2011 Day2
- 下一篇: 结对编程(二)