js面试题知识点全解(一变量类型和计算)

来源:互联网 发布:一落叶而知天下秋启示 编辑:程序博客网 时间:2024/06/05 11:13

1.js中使用typeof能得到哪些类型

2.何时使用=====

3.js中的内置函数

4.js变量按存储方式区分为哪些类型,并描述其特点

5.如何理解json

 

以下对这些问题的知识点做一些总结:

1.考点:js变量类型

 1 typeof undefined //undefined 2 typeof 'killua' //string 3 typeof 215 //number 4 typeof true //boolean 5 typeof {} //object 6 typeof [] //object 7 typeof null //object 8 typeof console.log //function 9 10 // typeof运算符6种类型:11 // undefined,string,number,boolean,object,function12 // 前4个是值类型,后4个是引用类型,typeof只能区分值类型的详细类型,对引用类型无法区分,只能区分function类型
 

2.值类型:每个变量可以存储自己的值,不会相互影响

var a=100;    var b=a;    a=200;    console.log(b);//100

   引用类型(对象,数组,函数):可以无限扩张属性,内存公用空间

var c={age:10};    var d=c; //age是一份,只是d和c同时都指向它    d.age=20;    console.log(c.age);//20

 

 3.变量计算-强制类型转换

// 1.字符串拼接        var a=100+10//110        var b=100+'10'//10010,number转换为string    // 2.运算符        100=='100'//true        0==''//true,都可以转换为false        null==undefined //true,都可以转换为false    //if语句        var a=true;        if(a){        }        var b=100;        if(b){            //把b强制转换为布尔类型        }        var c='';        if(c){            //把c空字符串转换为false        }    //逻辑运算符-与、或、非        console.log(10 && 0) //0, 10转换为true, true && 0返回0        console.log('' || 'abc') //'abc', ''转换为false        console.log(!window.abc) //true, window.abc返回为undefined,非false为true    //判断一个变量会被当作true还是false        var cc=100;        console.log(!!cc);

4.变量计算-强制类型转换

// 1.字符串拼接        var a=100+10//110        var b=100+'10'//10010,number转换为string    // 2.运算符        100=='100'//true        0==''//true,都可以转换为false        null==undefined //true,都可以转换为false    //if语句        var a=true;        if(a){        }        var b=100;        if(b){            //把b强制转换为布尔类型        }        var c='';        if(c){            //把c空字符串转换为false        }    //逻辑运算符-与、或、非        console.log(10 && 0) //0, 10转换为true, true && 0返回0        console.log('' || 'abc') //'abc', ''转换为false        console.log(!window.abc) //true, window.abc返回为undefined,非false为true    //判断一个变量会被当作true还是false        var cc=100;        console.log(!!cc);

问:何时使用===和==

if(obj.a==null){        //这里 相当于obj.a==null || obj.a==undefined,简写形式(jquery源码推荐的写法)        //除了这个,其他地方全用===    }

问:js中的内置函数 --数据封装对象

    Object    Array    Boolean    Number    String    Function    Date    RegExp    Error

问:js变量按存储方式区分为哪些类型,并描述其特点

// 值类型,每个变量可以存储自己的值,不会相互影响    var a=100;    var b=a;    a=200;    console.log(b);//100    //引用类型(对象,数组,函数),c和d同时指向age:10,    //可以无限扩张属性,内存公用空间(如果属性比较多,内存公用就会比较方便,所以要引用类型),互相会受干扰    var c={age:10};    var d=c;//age是一份,只是d和c同时都指向它    d.age=20;    console.log(c.age);//20

问:如何理解json

    //json 是内置在js语法里的对象,也是一种数据格式,json有两个API    JSON.stingify({a:10,b:20}) //把对象变换成字符串    JSON.parse('{"a":10,"b":20}') //把字符串变换成对象