JavaScript变量的认知

简介: 引入和许多编程语言一样,JS的变量也是一个可以等同为方程或者函数中那个“可变化的量”——X。不过在计算机的世界里,变量可以不仅仅是数字他可以包含我们上期提到的所有的数据类型。变量短暂存储了我们中间过程中所有的量,也正是由这些变量,我们构建出了当今这个丰富多彩的计算机世界……本期我们就一起来看看如何定义变量,包括申明、赋值、strict模式

引入

和许多编程语言一样,JS的变量也是一个可以等同为方程或者函数中那个“可变化的量”——X。

不过在计算机的世界里,变量可以不仅仅是数字

他可以包含我们上期提到的所有的数据类型。变量短暂存储了我们中间过程中所有的量,也正是由这些变量,我们构建出了当今这个丰富多彩的计算机世界……

本期我们就一起来看看如何定义变量,包括申明、赋值、strict模式


1. 变量的申明


JavaScript中变量是用一个变量名表示的,这个变量名的命名规则是

可以是大小写英文、数字、$_的组合。但不能以数字开头,也不能是JavaScript自带的保留字(也有人称为是关键字),如if、while等

符合以上条件的字符都可以是变量名。我们直接可以用var语句来申明一个变量——

var a; // 申明了变量a

我们用上面的语句就成功申明了一个变量a。但我们要注意,因为此时我们没有给a任何的值,所以此时a的值为undefined。既不是0也不是""(空字符串)


2. 变量的赋值


在JavaScript中,我们同其他编程语言一样,使用等号=给变量进行赋值。赋值规则是从右往左,即左边是变量名,右边是对应的值。我们可以把任意数据类型赋值给变量,且同一个变量可以反复赋值,并且和Python很像,重复赋值的可以是不同类型的变量,(不像C语言,变量数据类型是固定的)

var a = 100; // a的值是100,整数型
a = 'ABC'; // a变为字符串ABC

注意只能用var申明一次

我们把这类可以赋值不同数据类型给同一个变量的语言叫动态语言,C和JAVA这类变量本身数据类型固定的语言就是静态语言了


3. strict模式


有人说,同样是动态语言,Python直接赋值就可以了,都不用var之类的申明变量,JS可以这样吗?

很可惜,答案是可以的

为什么说是很可惜?因为JavaScript中如果不进行var申明就直接赋值,该变量就会被申明为全局变量——而JS是写前端的,如果你在一个页面的不同文件上不申明变量,那他们都会被定义为全局变量,这些全局变量会相互冲突,造成程序错误。

而用var申明的变量则会被限制住(一般限制在当前函数内),这样就可以减少冲突发生的可能性

所以JS官方出了一个strict模式,让使用者强制自己每个变量都用var申明过,否则会导致程序出错

启用这个模式的方法就是在JS第一行写上


'use strict'


但是要注意了,这里我们写的是一个字符串,有些低版本的浏览器会把它当做一个字符串执行,所以……

对前端人来说,要求配适所有浏览器可是比扣钱还恐怖


相关文章
|
6天前
|
JavaScript 前端开发
JavaScript如何判断变量undefined
JavaScript如何判断变量undefined
|
1月前
|
JavaScript 前端开发
JavaScript基础知识-变量的声明提前
关于JavaScript变量声明提前特性的基础知识介绍。
31 0
JavaScript基础知识-变量的声明提前
|
4月前
|
JavaScript 前端开发 开发者
JavaScript的变量提升是一种编译阶段的行为,它将`var`声明的变量和函数声明移至作用域顶部。
【6月更文挑战第27天】JavaScript的变量提升是一种编译阶段的行为,它将`var`声明的变量和函数声明移至作用域顶部。变量默认值为`undefined`,函数则整体提升。`let`和`const`不在提升范围内,存在暂时性死区。现代实践推荐明确声明位置以减少误解。
36 2
|
8天前
|
存储 前端开发 JavaScript
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
本文介绍了JavaScript变量的声明和使用、标识符的命名规则、如何获取和操作HTML元素,以及JavaScript的鼠标事件处理,通过示例代码展示了这些基础知识点在实际开发中的应用。
23 2
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
|
8天前
|
JavaScript 前端开发
js 变量作用域与解构赋值| 22
js 变量作用域与解构赋值| 22
|
1月前
|
存储 JavaScript 前端开发
|
2月前
|
JavaScript 前端开发
揭秘JavaScript变量的三大守护神:从var到let,再到const,究竟隐藏了哪些秘密?
【8月更文挑战第22天】在JavaScript中,`var`、`let`和`const`用于声明变量,但各有特点。`var`有函数作用域并会被提升至作用域顶部。`let`提供块级作用域且存在暂时性死区,不允许提前访问。`const`同样拥有块级作用域,用于声明常量,一旦初始化便不可改变。现代开发倾向于使用`let`和`const`以获得更清晰的作用域控制和避免潜在错误。
28 0
|
2月前
|
JavaScript 前端开发
揭开JavaScript变量作用域与链的神秘面纱:你的代码为何出错?数据类型转换背后的惊人秘密!
【8月更文挑战第22天】JavaScript是Web开发的核心,了解其变量作用域、作用域链及数据类型转换至关重要。作用域定义变量的可见性与生命周期,分为全局与局部;作用域链确保变量按链式顺序查找;数据类型包括原始与对象类型,可通过显式或隐式方式进行转换。这些概念直接影响代码结构与程序运行效果。通过具体示例,如变量访问示例、闭包实现计数器功能、以及动态表单验证的应用,我们能更好地掌握这些关键概念及其实践意义。
24 0
|
3月前
|
设计模式 JavaScript 前端开发
JS 代码变量和函数的正确写法
JS 代码变量和函数的正确写法
42 3
|
2月前
|
JavaScript 前端开发
JavaScript声明变量的几种方式
JavaScript声明变量的几种方式
24 0