变量

作者: 一江碎月 | 来源:发表于2017-10-18 07:01 被阅读0次

变量声明

js 中变量声明时使用 var , let 或 const 其中之一进行修饰。虽然变量声明时可以不加修饰词,但不推荐这种写法。

关键字 含义
const 声明一个块作用域的只读的常量,声明时必须被初始化
var 定义全局变量
let 声明一个块作用域的局部变量

所谓的全局变量实际上是全局对象的属性。在网页中,默认的全局对象是 window

当使用 var 在代码块中修改变量时,会出现如下问题:

function test() {
    var a = "x";
    console.log("xx")
}

for(var i=0;i<=1000;i++){
    var sum=0;
    sum+=i;
}
test();
console.log(a);//此句会报错,因为 a 定义在函数中
console.log(sum+","+i); // 此句会正常返回 for 循环中定义的 i 与 sum

这是因为 js 中的变量作用域是函数域而不是块级域,因此在函数内部声明的变量外界无法使用,但在代码块中声明的变量外界可以使用。

let 可以使变量的作用域仅限在最内层的代码块中。如只需要将上面的 for 循环修改如下:

for(let i=0;i<=1000;i++){
    let sum=0;// 使用 let 修饰变量
    sum+=i;
}

外界在使用 sum 变量时就会出错。


变量作用域

  1. 在所有函数之外声明的变量,叫做全局变量,因为它可被当前文档中的任何其他代码所访问

  2. 在函数内部声明的变量,叫做局部变量,因为它只能在该函数内部访问。

  3. let 修饰符定义了语句块中的局部变量。


for in

遍历对象内部的所有属性,不包括其原型中的。它只作用于对象。

var obj = {
    "name":"haha",
    "age":18
};
for (var p in obj) {
    alert(p); //会依次弹出 name age。并不是 haha 与 18
};

with

将代码块的作用域设置到一个特定的对象中。它只作用于对象中

var obj = {
    "name":"haha",
    "age":18
};
with(obj){//将代码块的作用域设置到 obj 对象中,所以可以直接使用属性名表示 obj 对象中的同名的属性
    var a = name;
    var b = age;
};
alert(a+b);

上面的 with 语句代码块相当于下面的语句:

var obj = {
    "name":"haha",
    "age":18
};
var a = obj.name;
var b = obj.age;
alert(a+b);

with 语句可以简写掉调用某一个对象属性前的 "obj."。


相关文章

  • mysql变量

    变量 /*系统变量:全局变量会话变量 自定义变量:用户变量局部变量 */ 一、系统变量 /*说明:变量由系统定义,...

  • mysql存储过程和函数149-169

    变量 /*系统变量:全局变量会话变量自定义变量:用户变量局部变量*/ 一、系统变量 说明:变量有系统提供,不是用户...

  • php 变量和常量

    一、变量 创建变量以 $ 开头,以 ; 结尾 可变变量从变量中解析出变量名 变量赋值 将变量b 将变量b 销毁变量...

  • Golang入门一:变量

    变量声明 变量初始化 变量赋值 变量交换 匿名变量

  • bash脚本编程-变量,变量类型

    bash变量类型: 环境变量,本地变量,位置变量,特殊变量。 本地变量: bash: VARNAME=value ...

  • MySQL(十八)变量

    系统变量:全局变量、会话变量 自定义变量:用户变量、局部变量 一、系统变量 说明:变量由系统定义,不是用户定义,属...

  • 类,变量,迭代器

    1、变量 python中实际有4种变量,分别是全局变量,类变量,实例变量,局部变量。 - 全局变量:类之外的变量,...

  • Linux下的变量

    Linux下的变量 Linux变量 Linux下的变量主要分为三种:本地变量、环境变量和位置变量本地变量本地变量是...

  • 变量及检测数据类型

    变量定义var 变量名 = 变量值; 先定义在赋值var 变量名; 变量名 = 变量值; 定义多个变量var 变量...

  • Java学习笔记-1.4.2变量的分类

    变量的分类 从整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量 局部变量、成员变量、静态变量的区...

网友评论

      本文标题:变量

      本文链接:https://www.haomeiwen.com/subject/ooqsuxtx.html