js中变量的定义
js中变量的定义的三中⽅法:const,var,let
const 设置的是常量,⼀经设置不可改变。在设置时必须赋初值。
2.var
var设置的是变量,可以不赋初值。
如果不赋初值的话,变量的类型为undefined;
如果赋值为:
var a="";
则a 的类型为string;
定义时,有⽆加var的区别:
在JS⾥的全局环境就是⼀个对象,这个对象也是JS运⾏的根,对浏览器中的JS,这个对象就是window对象。对全局JS语句来说,window对象就相当于当前作⽤域。
1var mylike="java";//定义了window作⽤域的⼀个变量 mylike;
2 yourlike="c#"; //定义了window作⽤域的⼀个属性 yourlike;const的作用
在全局语句中,加不加var并没有什么区别,但在函数体中加不加var是有区别的
1var mylike = "c#";
2 yourlike = "c++";
3 console.log("mylike is "+mylike+" "+"yourlike is "+yourlike); //mylike is c# yourlike is c++
4function change(){
5 console.log("in the function 's mylike "+mylike+"in the function's yourlike "+yourlike); //in the function 's mylike undefinedin the function's yourlike c++
6
7var mylike = "java";
8 yourlike = "php";
9 console.log("change mylike "+mylike+"change yourlike "+yourlike); //change mylike javachange yourlike php
10 }
11 change();
12 console.log("next mylike "+mylike+""+"next yourlike "+yourlike); //next mylike c#next yourlike php
加了var 的在函数内外表现为两个属性,var 定义的变量是有作⽤域的。⽽函数相当于在全局作⽤域中创建了⼀个⼦作⽤域。js遇到变量或函数时会⾸先在当前作⽤域,没到再往上⼀级作⽤域。在change函数中如何没有定义 var mylike 则会输出 “in the function ‘s mylike c#”,⽽上⾯在函数中定义 var mylike,当前作⽤域存在 mylike这个变量,⽽在⼀开始mylike还没赋值,为undefined。
在函数中mylike是⼀个值,函数外mylike是⼀个值。⽽没有var修饰的只表现出⼀个东西。
3.let
let是块级作⽤域,在函数中定于let变量,在函数外⽆影响
1 let a=1;
2 console.log(a); //1
3function change(){
4 let a = 333;
5 console.log(a); //333
6 }
7 change();
8 console.log(a); //1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论