变量、数据与数组操作

一、数据类型转换
  //转换成数字
   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);
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值