JS 入门章节目录
第二章:变量和数据类型
文章の目录
正文
变量
JavaScript 值
JavaScript 语句定义两种类型的值:混合值和变量值。
混合值被称为字面量。
变量值被称为变量。
JavaScript 变量
在编程语言中,变量用于存储数据值。
JavaScript 变量是存储数据值的容器。
JavaScript 使用 var 关键词来声明变量。
= 号用于为变量赋值。
注:
- 在编程中,类似代数,我们使用变量(比如 price1)来存放值。
- 在编程中,类似代数,我们在表达式中使用变量(total = price1 + price2)。
JavaScript 标识符
所有 JavaScript 变量必须以唯一的名称标识。
这些唯一的名称称为标识符。
注:
- 标识符是名称。
- 在 JavaScript 中,标识符用于命名变量(以及关键词、函数和标签)。
- 在大多数编程语言中,合法名称的规则大多相同。
在 JavaScript 中标识符的命名规则:
- 由数字、字母、下划线(_)或美元符号($)组成。
- 不能以数字开头
- 大小写敏感
- 不能使用 JavaScript 的关键词
- 尽量见名知意
注:
JavaScript 关键词:
- JavaScript 关键词用于标识被执行的动作。
- 如 var 关键词告知浏览器创建新的变量
JavaScript 与驼峰式大小写(驼峰命名法):
历史上,程序员曾使用三种把多个单词连接为一个变量名的方法:
1、连字符:first-name
注:
- JavaScript 中不能使用连字符。它是为减法预留的。
2、下划线:first_name
3、驼峰式大小写:
- FirstName —— 大驼峰命名法
- firstname —— 小驼峰命名法
注:
- JavaScript 程序员倾向于使用以小写字母开头的驼峰式命名法(即小驼峰命名法)。
变量的声明(创建)
在 JavaScript 中创建变量被称为”声明”变量。
可以通过 var 关键词来声明 JavaScript 变量:
// 变量的声明
var variableName;
// 声明之后,变量是没有值的。(技术上,它的值是 undefined。)
// 变量的赋值
variableName = "value";
// 将等号右边的值赋值给左边的变量。
// 声明变量时赋值
var variableName = "value";
注:
- 声明过程中,尽量不要省略 var 关键词,否则声明的是“全局变量”。
- 可以在一条语句中声明许多变量:以 var 作为语句的开头,并以逗号( , )分隔变量。
- 在一条语句中声明多个变量并赋值:以 var 作为语句的开头,并以逗号(,)分隔变量。
- 变量的声明可横跨多行。
- 在脚本的开头声明所有变量是个好习惯。
变量实例
var num1;
var num2 = 20;
var num3 = 30;
num1 = 10; // num1 为 10
num1 = 100; // num1 为 100,更改 num1 的值(重新为 num1 赋值)。
num2 = 200; // num2 为 200,更改 num2 的值(重新为 num2 赋值)。
var num2 = 2000; // num2 为 2000,重新声明 num2 并赋值。
var num3; // num3 的值为30,如果再次声明某个 JavaScript 变量,将不会丢失它的值。
数据类型
JavaScript 变量能够保存多种数据类型
数据类型
基本数据类型(原始数据类型)
- Number —— 数字类型
- String —— 字符串类型
- Boolean —— 布尔类型
- Undefined —— 未定义
- Null —— 空
JavaScript 数字
- JavaScript 只有一种数字类型。数字可以带小数点,也可以不带。
- 极大或极小的数字可以通过科学计数法来书写。
JavaScript 字符串
- 字符串是存储字符的变量。
- 字符串可以是引号中的任意文本。您可以使用单引号或双引号。
- 您可以在字符串中使用引号,只要不匹配包围字符串的引号即可。
- 如需在字符串中使用匹配包围字符串的引号,则需使用 \ 转义字符。
// 反斜杠转义字符把特殊字符转换为字符串字符
var x = "My name is \"Li Hua\".";
// My name is "Li Hua".
var x = 'My name is \'Li Hua\'.';
// My name is 'Li Hua'.
var x = "字符 \\ 被称为反斜杠。"
// 字符 \ 被称为反斜杠。
(如需了解更多 JS 字符串及字符串方法等相关内容,请阅读笔者另一篇文章:JS 字符串及字符串方法)
JavaScript 布尔值
- 布尔值只有两个值:true 或 false。
- 布尔值经常用在条件测试中,表示条件的真假。
注:
- 除条件判断外,做运算时,true 可以当做 1 运算,false 可以当做 0 运算。
Undefined
- 在 JavaScript 中,没有值的变量(声明变量未赋值),其值是 undefined;typeof 也返回 undefined。
- 任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。
Null
- 在 JavaScript 中,null 是“nothing”。它被看做不存在的事物。
- 在 JavaScript 中,null 的数据类型是对象。
- 您可以通过设置值为 null 清空对象。
// 通过设置值为 null 清空对象:
var person = null; // 值是 null,但是类型仍然是对象。
// 通过设置值为 undefined 清空对象:
var person = undefined; // 值是 undefined,类型是undefined。
Undefined 与 Null 的区别
Undefined 与 Null 的值相等,但类型不相等:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
引用数据类型
- Object —— 对象
- Array —— 数组
- Function —— 函数
JavaScript 拥有动态类型
JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:
var x; // x 为 undefined
var x = 5; // 现在 x 为数字
var x = "John"; // 现在 x 为字符串
变量的数据类型可以使用 typeof 操作符来查看:
语法:
typeof(variable)
// 或
typeof variable
typeof 运算符的返回类型为字符串,值包括以下几种:
- 'number' —— 数字类型的值或变量
- 'string' —— 字符串类型的值或变量
- 'boolean' —— 布尔类型的值或变量
- 'undefined' —— 没有值的变量或 undefined
- 'object' —— 对象、数组或 null
- 'function' —— 函数
数据类型转换
隐式转换
1、转换为字符串
所有的数据类型与 String 做 + 运算时,最后的结果都为 String。
注:
JavaScript 从左向右计算表达式。不同的次序会产生不同的结果:
var x = 1 + 2 + "li";
// 结果:3li
var x = "li" + 1 + 2;
// 结果:li12
显式转换(强制转换)
1、转换为字符串
toString()
作用:将任意类型的数据转换为 String 类型。
语法:
var result = variable.toString();
2、转换为数字
parseInt()
作用:获取指定数据的整数部分。
语法:
var result = parseInt(data);
注意:
- parseInt 从左向右依次转换,碰到第一个非整数字符,则停止转换。如果第一个字符就是非整数字符的话,结果为 NaN。
parseFloat()
作用:将指定数据转换成小数。
语法:
var result = parseFloat(data);
注意:
- parseFloat 从左向右依次转换,碰到第一个非小数字符,则停止转换。如果第一个字符就是非小数字符的话,结果为NaN。
Number()
作用:将一个字符串解析为 Number。
语法:
var result = Number(str);
注意:
- 如果包含非法字符,则返回 NaN。
补充:
- NaN
- 特殊的数字类型的值(typeof NaN 的结果为 'number')
- Not a Number 的缩写,表示不是一个合法的数字
- isNaN()
- 判断一个值是否是 NaN 值(会抛开数据类型来判断数据是否为一个合法的数字)
- 结果为 Boolean 类型
- true —— 不是一个合法的数字
- false —— 是一个合法的数字