字面量

字面量(literal)又称直接量,是指程序中能够直接使用的值,如 3.1415926

数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)

1
2
3
3.14
1001
123e5

字符串(String)字面量 可以使用单引号或双引号

1
2
"John Doe"
'John Doe'

表达式字面量 用于计算

1
2
5 + 6
5 * 10

数组(Array)字面量 用于定义一个数组

1
[40, 100, 1, 5, 25, 10]

对象(Object)字面量 用于定义一个对象

1
{firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

变量(variable)

变量是程序中数据的临时存放场所。在代码中可以只使用一个变量,也可以使用多个变量

声明变量

JavaScript 使用 var 关键字来声明变量

1
var carname; // 变量声明

变量声明之后,该变量默认值为undefined

如需向变量赋值,请使用等号( = )

carname="Volvo";

我们也可以在声明变量时对其赋值

1
var carname = "Volvo"; // 定义一个变量

下面的代码定义了一个名为 carname 的变量,并向其赋值 "Volvo",然后把它放入 id="demo" 的 HTML 段落中

1
2
3
4
5
<p id="demo"></p>
<script>
var carname = "Volvo";
document.getElementById("demo").innerHTML = carname;
</script>

如果一个访问一个不存在( 未声明 + 未定义 )的变量就会提示以下错误:

1
2
console.log(message);
//提示错误:message is not defined

默认情况下 不写声明关键字 var 直接赋值也可以使用变量,例如:a = 123

一条语句,多个变量

我们可以在一条语句中声明很多变量

该语句以 var 开头,并使用逗号 ( , ) 分隔变量即可

1
var lastname="Doe", age=30, job="carpenter";

标识符(identifier)

所谓标识符,就是指变量、函数、属性的名字,或函数的参数

JavaScript 使用 Unicode 字符集,理论上标识符可以是任何字符( 包括中文 ),但考虑到兼容性和安全性问题,建议遵循规范命名

标识符需要按照以下规范命名:

  • 标识符可以是字母(A-Z.a-z)、数字(0-9)、下划线 _ 和 $,但第一个字符不能为数字(0-9)
  • 标识符还不能以 JavaScript 保留关键字 命名

keywords

字母大小写

JavaScript 是区分字母大小写的

函数 getElementByIdgetElementbyID 是不同的

同样,变量 myVariableMyVariable 也是不同的

JavaScript 中,常见的是驼峰法的命名规则,如 lastName (而不是lastname)

数据类型(dataType)

JavaScript 中有 5 种基本的数据类型和 1 种引用数据类型:

基本数据类型( Primitive Data Type ):

  1. 字符串 ( String )
  2. 数字 ( Number )
  3. 布尔值 ( Boolean )
  4. 空 ( null )
  5. 未定义 ( undefined )

引用数据类型( Reference Data Type ):

  • 对象( Object )

动态数据类型

JavaScript 声明变量是无需指定数据类型的,js 运行时会根据变量的值确定数据类型,这意味着相同的变量可存储不同的数据类型

1
2
3
var x;      // x 为 undefined 
x = 5; // 现在 x 为数字
x = "John"; // 现在 x 为字符串

字符串(String)

多个字符连在一起就叫做字符串,字符串用引号包裹,引号可以是单引号也可以是双引号

字符串可以是引号中的任意文本

1
2
var carname = "Volvo XC60";
var carname = 'Volvo XC60';

字符串中可以包含引号,只要不和包围字符串的引号相同就行

1
2
3
4
var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';
var answer="He is called "Johnny""; // 错误 Johnny会被当做变量

转义字符

字符串中一些特殊符号是无法直接使用的,这时就需要使用转义字符了

JavaScript 转义字符
序列代表字符
\0Null字符(\u0000)
\b退格符(\u0008)
\t水平制表符(\u0009)
\n换行符(\u000A)
\v垂直制表符(\u000B)
\f换页符(\u000C)
\r回车符(\u000D)
\"双引号(\u0022)
\'撇号或单引号(\u0027)
\\反斜杠(\u005C)
\uXXXX由 4 位十六进制数值 XXXX 指定的 Unicode 字符 Unicode编码表参考书

数字(Number)

数字 主要用于算数运算

数字可以是整数还可以是小数

1
2
var a = 13;
var b = 13.00;

对于极大或极小的数字可以通过科学 ( 指数 ) 计数法来表示

1
2
var y=123e5;      // 12300000
var z=123e-5; // 0.00123

±infinity

Number型的数字大小是有限的,通过输出常量Number.MAX_VALUENumber.MIN_VALUE即可获取 js 的最大数和最小数

1
2
3
4
5
6
console.log(Number.MAX_VALUE);
// Number.MAX_VALUE 为Js所能表示的最大正数
console.log(-Number.MAX_VALUE);
// -Number.MAX_VALUE 为Js所能表示的最大负数
console.log(Number.MIN_VALUE);
// Number.MIN_VALUE 为Js所能表示的最接近0的数,即大于0的最小数值

如果超过了Number.MAX_VALUE的范围,则返回infinity( 正无穷 )或-infinity( 负无穷 )

NaN

NaN(Not a Number)是一个特殊的数值,js 中如果数值计算没有结果,则返回NaN

其他进制数

  • 16进制:以0x开头
  • 8进制:以0开头
  • 2进制:以0b开头

布尔值(Boolean)

布尔值主要用在条件判断中

它只有两个值 true( 真 ) 或 false( 假 )

1
2
var x = true;
var y = false;

typeof(检测数据类型)

功能描述:typeof 是 JavaScript 中的运算符,用来查看变量的数据类型,并返回类型字符串

语法:typeof <值>

输出:

  • typeof %数值%(返回值:number)

  • typeof %字符串%(返回值:string)

  • typeof %布尔值%(返回值:boolean)

  • typeof undefined(返回值:undefined)

  • typeof null(返回值:object)

数据类型转换

使用String()函数 可以将其它数据类型转换为字符串

转换关系:

1
2
3
4
5
"Hello_你好" => "Hello_你好";
123 => "123";
true => "true";
NaN => "NaN";
undefined => "undefined";

使用Number()函数 可以将其它数据类型转换为数值型

转换关系:

1
2
3
4
5
6
123 => 123;
"Hello_你好" => NaN;
true => 1;
false => 0;
null => 0;
undefined => NaN;

使用parseInt()函数可以把一个字符串转换为一个整数(取整)

例:

1
2
console.log(parseInt('123a123')) //输出为 123
console.log(parseInt('a123')) //输出为 NaN

使用parseFloat()函数可以把一个字符串转换为一个浮点数(小数)

例:

1
2
var a = parseFloat('123.5px');
console.log(a) //输出为 123.5

使用Boolean()函数 可以将其它数据类型转换为布尔型

转换关系:

1
2
3
4
5
6
7
±123 => true;
0 => false;
NaN => false;
undefined => false;
"Hello_你好" => true;
"" => false;
null => false;