Undefined、Null瞧栗、Number斯稳、String、Object(ES6新增Symbol)
typeof null? ?//object
var message;
typeof message? ?//undefined
typeof age? ?//undefined(未申明)
null == undefined? //true(nudefined派生自null值)
轉(zhuǎn)換為布爾值為false:
Boolean('')? ?//false
Boolean(0)? ?//false
Boolean(NaN)? ?//false
Boolean(null)? ?//false
Boolean(undefined)? ?//false
ECMAScript使用IEEE754格式表示整數(shù)和浮點數(shù)值-----浮點值計算會有誤差
最大值:Number.MAX_VALUE = 1.7976931348623157e+308
最小值:Number.MIN_VALUE = 5e-324
正無窮:+Infinity? ?(Number.POSITIVE_INFINITY)
負(fù)無窮:-Infinity? ?(Number.NEGATIVE_INFINITY)
判斷是否在最大值與最小值之間:isFinite()
任何涉及NaN的操作都會返回NaN,NaN與任何值都不相等迹恐,包括NaN本身
判斷一個值是否“不是數(shù)值”:isNaN()? ? ?(會嘗試將值轉(zhuǎn)換成數(shù)值)
數(shù)值轉(zhuǎn)換:
Number(true) = 1;
Number(false) = 0;
Number(null) = 0;
Number(undefined) = NaN;
Number('') = 0;
Number('-8.5') = -8.5;
Number('00011') = 11;
Number('15') = 15;
Number('0xf') = 15;
Number(015) = 13;
Number('ab3c') = NaN;
parseInt('1234blue') = 1234;
parseInt('') = NaN;
parseInt('015') = 15;
parseInt('0xf') = 15;
parseInt(015) = 13;
parseInt(22.5) = 22;
parseInt('AF', 16) = 175;
parseInt('10', 8) = 8;
parseInt('10', 10) = 10;? ?//推薦使用
parseFloat('1234blue') = 1234;
parseFloat('0xAF') = 0;
parseFloat(0xAF) = 175;
parseFloat('22.34.5') = 22.34;
parseFloat('0908.5') = 908.5;
parseFloat('3.125e7') = 31250000;
字符字面量:
\n? ?//換行
\b? ?//退格
\r? ?//回車
\\? ?//斜杠
\xnn? ?//以十六進制表示的一個字符(其中n為0~F)
\unnnn? ?//以十六進制表示的一個Unicode字符(其中n為0~F)
轉(zhuǎn)換為字符串:
1挣惰、toString()? ?//null和undifined沒有這個方法
10.toString() = '10';
10.toString(2) = '1010';
10.toString(8) = '12';
10.toString(10) = '10';
10.toString(16) = 'a';
true.toString() = 'true';
2、String()? ?//這個函數(shù)能將任何類型的值轉(zhuǎn)換成字符串
String(10) = '10';
String(null) = 'null';
String(undefined) = 'undifined';
String(true) = 'true';
object類型(每個實例都有的屬性和方法):
constructor? ?//保存著用于創(chuàng)建當(dāng)前對象的函數(shù)
hasOwnProperty(propertyname)? ?//用于檢查給定的屬性在當(dāng)前對象實例中(而不是實例的原型中)是否存在
isPrototypeOf(object)? ?//用于檢查傳入的對象是否是當(dāng)前對象的原型
propertyIsEnumerable(propertyname)? ?//用于檢查給定的屬性是否能夠使用for-in語句來枚舉
toLocaleString()? ?//返回對象的字符串表示殴边,該字符串與執(zhí)行環(huán)境的地區(qū)對應(yīng)
toString()? ?//返回對象的字符串表示
valueOf()? ?//返回對象的字符串憎茂、數(shù)值或布爾值。通常與toString() 方法的返回值相同
位操作符:
1锤岸、~(按位非)? ?//返回數(shù)值的反碼-----在最底層執(zhí)行操作竖幔,因此速度更快
~25 = -26;
2、&(按位與)? ?//將兩個數(shù)值的每一位對齊是偷,對相同位置上的兩個數(shù)執(zhí)行AND操作
25 & 3 = 1赏枚;
3、|(按位或)? ?//將兩個數(shù)值的每一位對齊晓猛,對相同位置上的兩個數(shù)執(zhí)行OR操作
25 | 3 = 27饿幅;
4、^(按位異或)? ?//將兩個數(shù)值的每一位對齊戒职,對相同位置上只有一個1時才返回1
25 ^ 3 = 26栗恩;
5、<<(左移)? ?//將數(shù)值的所有位向左移動指定的位數(shù)-----左移不會影響操作數(shù)的符號位
2 << 5 = 64;
-2 << 5 = -64;
6洪燥、>>(有符號右移)? ?//將數(shù)值的所有位向右移動指定的位數(shù)-----保留符號位
64 >> 5 = 2;
7磕秤、>>>(無符號右移)? ?//將數(shù)值的所有位向右移動指定的位數(shù)-----負(fù)數(shù)符號位會改變
64 >>> 5 = 2;
-64 >>> 5 = 134217726;
0 * Infinity = NaN;
Infinity *?Infinity=?Infinity;
Infinity * 1 =?Infinity;
Infinity * -1 = -Infinity;
Infinity /?Infinity = NaN;
Infinity / 0 = NaN;
Infinity / 1 =?Infinity;
Infinity / -1 = -Infinity;
1 /?Infinity = 0;
Infinity %?Infinity = NaN;
Infinity % 0 = NaN;
12 %?Infinity = 12;
12 % 0 = NaN;
Infinity +?Infinity =?Infinity;
-Infinity + -Infinity = -Infinity;
Infinity + -Infinity = NaN;
Infinity -?Infinity = NaN;
-Infinity - -Infinity = NaN;
Infinity - -Infinity =?Infinity;
-Infinity -?Infinity = -Infinity;
==(相等)-----存在類型轉(zhuǎn)換
null == undefined;? ?//true
null == 0;? ?//false(在比較相等性之前,不能將 null和undefined轉(zhuǎn)換成其他任何值)
undefined == 0;? ?//false(在比較相等性之前捧韵,不能將 null和undefined轉(zhuǎn)換成其他任何值)
===(全等)-----不存在類型轉(zhuǎn)換
null === undefined;? ?//false