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

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,function
12 // 前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}') //把字符串变换成对象
原文地址:https://www.cnblogs.com/chooper/p/7388600.html