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"]

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

  • 相关阅读:
    不等高cell的搭建(一)
    重复点击主界面(TabBar)按钮刷新界面--点击状态栏回到顶部
    如何学习新框架(保存图片到相册)
    上下拉刷新
    MVVM框架思想
    不等高cell的tableView界面搭建
    UITabBarController底层实现
    封装业务类
    RSS阅读器
    构造队列
  • 原文地址:https://www.cnblogs.com/yzxyzx/p/12640763.html
Copyright © 2011-2022 走看看