zoukankan      html  css  js  c++  java
  • 函数作用域以及块级作用域

    var j=20;
    console.log(i);//undefined
    console.log(j);//20
    for( var i=0;i<3;i++){
    var j=10;
    console.log(j);//10
    }
    console.log(j);//10
    console.log(i);//3


    console.log(z)//undefined
    while(true){
    var z = 10;
    break;
    }


    console.log(z)//10

    从上述代码的实验中便能证明js中用var声明不存在块级作用域,只有函数作用域,因此无论是for循环中还是while循环中用var定义的变量都是全局变量。

    想要有块级作用域就得用let来声明。

    另外while循环中必需要有循环条件,空不能执行(报错),false,0,"",null,undefined为false

    还有两个小知识

    1.声明或者调用时对象的属性名会被强制转换成字符串类型

    var sample = {
    1 : "abc",
    5 : 100
    };


    console.log("sample 5 is: " + sample[5]);
    console.log("sample 5 is: " + sample["5"]);

    通过这段代码实验便能得知

    2.在数组中字符串则必须加上"",否则便会报错,因为在数组中是所有类型都可以存入的,所以数组中不存在自动转换成字符串类型,需要手动加上""

    var arr=[a,b,c]//像这样便会报错

    必须加上""

    var arr=["a","b","c"]

    这是两个新手可能犯的小错误,在此写下

  • 相关阅读:
    State Management
    排序效率小PK
    ES,ZK,Mysql相关参数优化
    ES翻译之Function Score Query
    打算坚持学习技术的习惯
    面试——并发基础知识1
    码云的GIT操作
    CountDownLatch模拟高并发测试代码
    Bloom Filter的应用
    面试题1—选取同一个字符第一不重复的字符
  • 原文地址:https://www.cnblogs.com/yzxyzx/p/12640763.html
Copyright © 2011-2022 走看看