【JavaScript】4.面试题一JS基础知识(上)

来源:互联网 发布:苹果性能评测软件 编辑:程序博客网 时间:2024/04/30 07:45

一、变量类型和计算

题目:

(1)JS中使用typeof能得到哪些类型?

typeof能确定值类型的具体类型,不能确定引用类型的具体类型

(2)何时使用===? 何时使用==?

一般建议都使用===,只有下面两种判断对象属性和函数参数是否存在的情况下使用==

- 判断对象属性是否存在

    if(obj.a == null){        //这里相当于obj.a === null || obj.a === undefined,简写形式        //这里jQuery源码中推荐的写法    }

- 判断函数参数是否存在

    function fn(a,b){        if(a == null){            ...        }    }

(3)JS中有哪些内置对象?

Object Array Function String Number Boolean Date RegExp Error

(4)JS变量按照存储方式区分为哪些类型,并描述其特点?

值类型和引用类型,值类型的值复制以后修改不会相互影响,引用类型的赋值是变量指针的赋值,他们值得修改是相互干预的

(5)如何理解JSON

JSON是JS的一个对象

知识点

(1)变量类型

- 值类型

 var a=100;var b=a;        a=200;        console.log(b); //100
- 引用类型(对象,数组,函数),最大的特点就是无限制扩大属性
    var a={age:20};    var b=a;    b.age=21;    console.log(a.age);   //21
- typeof 运算符,只能区分值类型的具体类型

    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 null);//object    console.log(typeof console.log);//function

(2)变量计算-强制类型转换

- 字符串拼接

    var a=100+10;    var b=100+'10';    console.log(a);//110    console.log(b);//10010

- == 运算符

    console.log(100 == '100');//true    console.log(0 =='');//true    console.log(null ==undefined);//true

- if 语句,0,NaN,' ',null,undefined,false这几个都为false

    var a=100;    if(a){        ...    }

- 逻辑运算

    console.log(10 && 0);//0    console.log('' || 'abc');//abc    console.log(!window.abc);//true     //判断一个变量会被当成 true 还是 false    var b=10;    console.log(!!b);
(3)如何理解JSON,JSON只不过是一个JS对象而已

    JSON.stringify({a:10,b:20});//把对象转化成字符串    JSON.parse('{"a":10,"b":20}');//把字符串转化成对象