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}');

lxcan
337 声望32 粉丝