美文网首页JavaScript
JavaScript 变量

JavaScript 变量

作者: Rising_life | 来源:发表于2019-03-11 11:02 被阅读2次

变量

变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如if、while等。申明一个变量用var语句,比如:

var a; // 申明了变量a,此时a的值为undefined

var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1

var s_007 = '007'; // s_007是一个字符串

var Answer = true; // Answer是一个布尔值true 

var t = null; // t的值是null

变量名不可以用中文。

在JavaScript中,使用等号 = 对变量进行赋值。可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var申明一次,例如:

var a = 123; // a的值是整数123

a ='ABC'; // a变为字符串

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下:

int a = 123; // a是整数类型变量,类型用int申明

a ="ABC"; // 错误:不能把字符串赋给整型变量

和静态语言相比,动态语言更灵活,就是这个原因。

请不要把赋值语句的等号等同于数学的等号。比如下面的代码:

var x =10;

x = x +2;

如果从数学上理解x = x + 2那无论如何是不成立的,在程序中,赋值语句先计算右侧的表达式x + 2,得到结果12,再赋给变量x。由于x之前的值是10,重新赋值后,x的值变成12。

strict模式

JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:

i =10; // i现在是全局变量

在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以调试的错误结果。

使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内(函数的概念将稍后讲解),同名变量在不同的函数体内互不冲突。

为了修补JavaScript这一严重设计缺陷,ECMA在后续规范中推出了strict模式,在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。

启用strict模式的方法是在JavaScript代码的第一行写上:

'use strict';

这是一个字符串,不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏览器将开启strict模式运行JavaScript。

来测试一下你的浏览器是否能支持strict模式:

'use strict';

// 如果浏览器支持strict模式,

// 下面的代码将报ReferenceError错误:

abc = 'Hello, world';

console.log(abc);

运行代码,如果浏览器报错,请修复后再运行。如果浏览器不报错,说明你的浏览器太古老了,需要尽快升级。

不用var申明的变量会被视为全局变量,为了避免这一缺陷,所有的JavaScript代码都应该使用strict模式。我们在后面编写的JavaScript代码将全部采用strict模式。

相关文章

  • JS的基本语法--变量及类型

    1. 基本语法 声明(创建) JavaScript 变量在 JavaScript 中创建变量通常称为“声明”变量。...

  • 7 js 变量

    13 局部 JavaScript 变量在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以...

  • Javascript 变量、函数的声明

    javascript变量 全局变量和局部变量按照变量的作用域来区分,和大多数编程语言类似,javascript变量...

  • JavaScript 变量作用域和内存问题

    按照ECMAScript的定义,JavaScript的变量与其他语言的变量有很大区别。JavaScript变量松散...

  • javascript学习思维导图

    JavaScript 数据类型 JavaScript 变量 Javascript 运算符 JavaScript 流...

  • JavaScript函数闭包

    JavaScript闭包 JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。 全局变量1....

  • js语法难点

    javascript语法难点问题 Javascript的变量javascript语言和java语言一样变量是分为两...

  • js归纳总结——各种思维导图

    javascript DOM操作 javascript windows对象 javascript变量 javasc...

  • js语法

    JavaScript 变量 在编程语言中,变量用于存储数据值。 JavaScript 使用关键字var来定义变量,...

  • 变量

    JavaScript 变量JavaScript 变量是存储数据值的容器。 在本例中,x、y 和 z 是变量: 实例...

网友评论

    本文标题:JavaScript 变量

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