實例案例
首先我先來看面試中常見的幾道題:
1、js中使用typeof 能得到那種類型?
2、何時使用 === 何時使用 ==?
3、js中有哪些內(nèi)置函數(shù)?
4、js變量按儲存方式區(qū)分為哪些類型 并描述其特點?
5、如何理解json?
現(xiàn)在先想想怎么回答這幾題。
按儲存類型分的兩種數(shù)據(jù)類型
值類型
// 變量
// 變量計算
// 值類型 vs 引用類型
// typeof運算符詳解
// 值類型
vara=100;
varb=a;
a=200;
console.log(b);// 100
// 引用類型
// a 保存的 這個對象的指針 這個指針指向的是這個對象的指針
// 把a付給 b 也吧這個指針指向b
// 引用類型 對象 數(shù)組 函數(shù)
// 引用類型特點 無限制擴充屬性
vara={
age:20
};
varb=a;
b.age=21;
console.log(a.age);//21
typeof能得到幾種類型的值
// typeof能得到什么值
// string number boolean undefined object function
// typeof 只能區(qū)分值類型的詳細類型
console.log(typeof undefined) // undefined
console.log(typeof 'abc') // string
console.log(typeof 123) // number
console.log(typeof true) // boolean
console.log(typeof {}) // object
console.log(typeof []) //object
console.log(typeof undefined) //object
console.log(typeof null) //object
console.log(typeof console.log) // function
變量類型計算
// 變量計算
// 強制類型轉(zhuǎn)換
// 強制類型轉(zhuǎn)換的情況
// 字符串拼接 == 運算符 if語句 邏輯運算
// 字符串拼接
var a = 100 + 10; // 110
var b = 100 + '10'; // '10010' 轉(zhuǎn)換成 string類型
console.log(a,b);
// == 運算符
console.log(100 == '100');// true
console.log(0 == '') //true
console.log(null == undefined); // true
// if語句
var c = '';
if(c){ // 轉(zhuǎn)換成false
console.log('true')
}
// 邏輯運算符
console.log(10 && 0);// 0 10轉(zhuǎn)換成true
console.log('' && 10);
console.log(false && 10);
console.log('' || 'abc');//abc ''轉(zhuǎn)換成false
console.log('abc' || '')
console.log(!window.abc) //true
console.log(true || '123');
console.log(false || '123');
var a = 100;
console.log(!!a); //true
現(xiàn)在我們解決開頭那幾題
// js中使用typeof 能得到那種類型
// 何時使用 === 何時使用 ==
// 答:if(obj.a == null) 這里相當于 obj. == null || obj.a = undefined 簡寫形式
// 這里也是jquery源碼中推薦的寫法
// js中有哪些內(nèi)置函數(shù)
// Object Array Boolean Number String Function Date RegExp Error
// js變量按儲存方式區(qū)分為哪些類型 并描述其特點
// 值類型和引用類型 值類型可以分塊存儲在內(nèi)存空間
// 引用類型只存儲在一個內(nèi)存塊中
// 如何理解json
// JSON只不過是一個js對象而已
// JSON.stringify({a:10,b:20})
// JSON.parse('{"a":10,"b":20}')
console.log(JSON.stringify({a:10,b:20}))
console.log(JSON.parse('{"a":10,"b":20}'))