1. js 中使用 typeof 能得到那些类型
typeof undefined // undefined
typeof ‘abc’ //string
typeof 123 // number
typeof true // boolean
typeof {} // object
typeof [] // object
typeof null // object
typeof console.log // function
2. 何时使用 === 何时使用 ==
判断对象属性是否存在可以使用 ==,其他情况都使用 ===
if (obj.a == null) {
// 这里相当于 obj.a === null || obj.a === undefined 的简写形式
// 这是 jquery 源码中推荐的写法
}
function fn(a,b) {
if(a == null) {
// …
}
}
3. 发生强制类型转换的情况
// 字符串拼接
var a = 100 + 10; // 110
var b = 100 + ’10’; // ‘10010’
var c = ’10’ – 1; // 9
// == 运算符
100 == ‘100’; // true
0 == ”; // true
null == undefined; // true
// if 语句
var a = 100;
if (a) {…}
var b = ”;
if (b) {…}
// 逻辑运算
console.log(10 && 0); // 0
console.log(” || ‘abc’); // ‘abc’
console.log(!window.abc); // true
// 判断一个变量会被当做 true 还是 false
var a = 100;
console.log(!!a);
if 条件里,只有以下情况为 false
0 ” null undefined NaN false
4. js 中有哪些内置函数 – 数据封装类对象
Object
Array
Boolean
Number
String
Function
Date
RegExp
Error
5. js 变量按照存储方式区分为那些类型,描述一下特点
值类型 number string boolean 引用类型 object function
// 值类型
var a = 1;
var b = a; // 赋值之后不会相互干涉
a = 2;
console.log(b); // 1
// 引用类型
var obj1 = {x:1};
var obj2 = obj1; // 变量指针的赋值,不是真正的拷贝
obj1.x = 2; // 值的修改会相互干预
console.log(obj2.x); // 2
6. 如何理解 JSON
JSON 只不过是一个 js 对象而已,它也是一种数据格式
JSON.stringify({a:10, b:20});
JSON.parse(‘{a:10, b:20}’);