变量、数据与数组操作

来源:互联网 发布:淘宝情趣用品类目 编辑:程序博客网 时间:2024/05/16 01:54
一、数据类型转换
  //转换成数字   var str = "11";   var bool = true;   console.log(typeof (str-0));   console.log(typeof (bool-0));   console.log(typeof (str*1));   console.log(typeof (bool*1));   console.log(typeof (str/1));   console.log(typeof (bool/1));   console.log(typeof typeof (bool/1));  //数据类型是用string定义的   console.log(typeof Number(str));   console.log(typeof Number(bool));////   var str2 = "12.34abc";   var str3 = "12.34";   console.log(parseInt(str2));   console.log(parseFloat(str2));   console.log(Number(str3));    //布尔类型转换    var date = new Date();    //    console.log(Boolean(0));    console.log(Boolean(""));    console.log(Boolean(null));    console.log(!!1);    console.log(!!"abc");    console.log(!!date);

二、变量作用域

 //隐式全局变量    function fn(){        //b和c都是隐式全局变量        var a = b = c = 1;        //e和f都是隐式全局变量(分号相当于换行)        var d = 1;e =2;f=3;        //g和i都不是隐式全局变量        var g = 1,h= 2,i=3;    }    fn();    console.log(b);    console.log(c);    console.log(e);    console.log(f);   // console.log(a);   console.log(h);   console.log(i);

三、变量声明提升和预解析

  //预解析:js的解析器在页面加载的时候,首先检查页面上的语法错误。把变量声明提升起来。    //变量值提升变量名,不提升变量值。而用function直接定义的方法是整体提升。    //1.查看语法错误。    //2.变量声明提升和函数整体提升(变量声明提升的时候,只提升变量名,不提升变量值)    //3.函数范围内,照样适用。    var aaa;    console.log(aaa);    aaa = 111;    fn();    function fn(bbb){        //变量声明提升在函数内部照样实用。        //函数的就近原则。        var aaa;        console.log(aaa);        aaa = 222;    }    function fn2(bbb){        //两个函数中的局部变量不会相互影响。        console.log(bbb);    }


原创粉丝点击