前端JS基础一(基础知识)

2018-08-01  本文已影响0人  EmilioWeng

基础知识

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

2.typeof只能区分值类型的详细类型,对引用类型无能为力,但可以区分出函数来

       typeof undefined; //undefined
       typeof 'abc'; //string
       typeof 123; //number
       typeof true; //boolean
       typeof {}; //object
       typeof []; //object
       typeof null; //object
       typeof console.log //function

3.强制类型转换(值类型的计算)
① 字符串拼接
② ==运算符
③ if语句
④ 逻辑运算(布尔操作符 逻辑非、逻辑与、逻辑或)

       var a=100+10;//110
       var b=100+'10'//'10010'

       100 =='100'//true
       0==''//true
       null==undefined//true

       var a=true;
       if(a){
          //...
       }
       var b=100;
       if(b){
          //...
       }
       var c='';
       if(c){
          //...
       } 

       console.log(10&&0)//0
       console.log(''||'abc')//abc
       console.log(!window.abc)//true
       
       var a=100;
       console.log(!!a)//true

练习题

     练习题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
           // typeof只能区分值类型的详细类型,对引用类型无能为力,但可以区分出函数来

     练习题2、何时使用===何时使用==?
            if(obj.a==null){
                //这里相当于obj.a===null||obj.a===undefined,简写形式
                //这是jquery源码中推荐的方法,其他的都用===
            }

     练习题3、JS中有哪些内置函数的数据封装类对象?
          //JS作为单纯语言的内置函数
            Object
            Array
            Boolean
            Number
            String
            Function
            Date
            RegExp
            Error
            //Global浏览器内置对象
            //Math是对象,不是函数

    练习题4、JS变量按照存储方式区分为哪些类型,并描述其特点
            //分为值类型和引用类型
            //值类型
            var a=10
            var b=a
            a=11
            console.log(b)//10

            //引用类型
            var obj1={x:100}
            var obj2=obj1
            obj1.x=200
            console.log(obj2.x)//200
            值类型直接存储的是值
            引用类型存储的是指向值的指针,这样做是为了节省内存
            值类型的值赋值后不会相互干预
            引用类型的赋值是变量指针的赋值,不是真的值的拷贝,他们的赋值是相互干预的。

     练习题5、如何理解JSON?
            //JSON只不过是一个JS对像而已,和MATH一样
            JSON.stringfy({a:10,b:20})
            JSON.parse('{"a":10,"b":20}')
            //注意:JS中为false的为 0 NaN null undefined '' false
上一篇下一篇

猜你喜欢

热点阅读