注释
在 JavaScript 中有2种注释:
-
单行注释:
// 默认快捷键 ctrl + /
-
多行注释:
/* 默认快捷键 shift + alt + a */
输入输出语句
方法 | 说明 | 归属 |
---|---|---|
alert(msg) | 浏览器弹出警示框 | 浏览器 |
console.log(msg) | 浏览器控制台打印输出信息 | 浏览器 |
prompt(info) | 浏览器弹出输入框,用户可以输入 | 浏览器 |
变量
变量是程序在内存中开辟的一块用于存放数据的空间。
声明变量
在 JavaScript 中变量可以使用var
进行声明,也可以省略var
直接进行使用。
// 单行
var test;
var test01 = 1;
test02 = 1;
var test03 = 'i am str';
test04 = 'i am str';
// 多行
var test = 18,
test02 = 'i am str';
注意:
-
仅声明变量,但是未给变量赋值,控制台中输出为
undefined
. -
未声明变量,在控制台中调用输出将报错。
变量的命名规范
-
由字母(A-Za-z)、数字(0-9)、下划线()、美元符号($)组成,如:usrAge,num01,_name
-
严格区分大小写。var app;和var App;是两个变量
-
不能以数字开头。18age是错误的
-
不能是关键字、保留字。例如:var、for、while
-
变量名必须有意义。MMD BBD nl → age
-
遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。myFirstName
-
推荐翻译网站:有道 爱词霸
数据类型
JavaScript 中的数据类型类似于 Python,都是一种弱类型。他们在声明变量时,不用声明数据类型。而是在程序运行的过程中,数据类型会被自动确认。
在运行代码时,变量的数据类型是由 JS引擎根据 = 右边变量值的数据类型来判断的,运行完毕后,变量就确定了数据类型。
数据类型的分类:
- 简单数据类型:Number,String,Boolean,Undefined,Null
- 复杂数据类型:Object
简单数据类型
简单数据类型 | 说明 | 默认值 |
---|---|---|
Number | 数字型,包含整型和浮点型 | 0 |
Boolean | 布尔值型,true / false | false |
String | 字符串型 字符串需要带引号 | “” |
Undefined | 声明了变量但是没有负值此时变量就为Undefined | undefined |
Null | 声明变量为空值 | null |
关于数字型
- 数字型直接赋值是使用的十进制
- 在需要的数字前加
0
是使用八进制var a = 010
- 在需要的数字前加
0x
是表示十六进制var a = 0x10
在控制台中输出的都是十进制
- 数字型中的最大值
Number.MAX_VALUE
- 数字型中的最小值
Number.MIN_VALUE
- 数字型的无穷大
Number.MAX_VALUE * 2
比任何值都大 - 数字型的无穷小
Number.MIN_VALUE * 2
比任何值都小 - NaN,Not a Number,代表一个非数值,当的不出我们想要的结果并且不是个数字时用其表示,如
‘test’ - 100
isNaN()
这个方法用来判断非数字,如果是数字返回 false
否则返回 true
字符串型
字符串类型使用单引号和双引号都可以,但是推荐用单引号
当使用到引号嵌套时,要使用不同的引号,外部是单引号内部就用双引号,外部是双引号内部就用单引号
转义字符
转义符 | 说明 |
---|---|
\n | 换行 |
\\ | 斜杠\ |
\’ | 单引号 |
\” | 双引号 |
\t | tab 缩进 |
\b | 空格,b 是 blank 的意思 |
字符段长度 length
var a = 'i am str';
console.log(a.length);
字符串拼接
console.log('沙漠'+'骆驼');
// out: 沙漠骆驼
console.log('永远'+18);
// out: 永远18
console.log('永远'+18+'岁');
// out: 永远18岁
总结:数值相加,字符相连
布尔型
var flag = true,
flag1 = false;
console.log(flag + 1); // true 参与运算当 1 来看
console.log(flag1 + 1); // false 参与运算当 0 来看
undefined 和 null
var str;
console.log(str); // 输出 undefined
var v1 = undefined;
console.log(v1 + 'test'); // 输出 undefinedtest
console.log(v1 + 1); // 输出 NaN
var space = null;
console.log(space + 'test'); // 输出 nulltest
console.log(space + 1); // 输出 1 ,因为什么都没有+1还是1
数据类型检测 typeof
var num = 10;
var str = 'brokyz';
console.log(typeof num);
console.log(typeof str)
数据类型的转换
转换为字符串
方式 | 说明 | 案例 |
---|---|---|
toString() | 转字符串 | var num = 1; alert(num.toString()); |
String() 强制转换 | 转字符串 | var num = 1; alter(String(num)) |
加号拼接字符串 | 和字符串拼接的结果都是字符串 | var num = 1; alter(num + ‘’) |
转换为数字型
方式 | 说明 | 案例 |
---|---|---|
parseInt(string) 函数 | 将string类型转换为整数数值型 | parseInt(‘78’) |
parseFloat(string) 函数 | 将string类型转换为浮点数数值型 | parseFloat(‘3,14’) |
Number() 强制转换函数 | 将string类型转换为数值型 | Number(‘12’) |
js 隐式转换 (- * /) | 利用算数运算隐式转换 (注意不能用+) | ‘12’ - 0 |
转换为布尔
console.log(Boolean('')); // false
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
// 只有上面五种情况为 false 其余情况都为 true
console.log(Boolean('123')); // true
console.log(Boolean('你好')); //true
运算符
算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | |
- | 减 | |
* | 乘 | |
/ | 除 | |
% | 取余 | 5 % 3 = 2; 3 % 5 = 3; |
浮点数运算时会有问题
console.log(0.1 + 0.2); // 0.30000000000000000004
由于浮点数运算时会转换成二进制,用二进制进行算术运算,这时就会存在一些误差
所以要尽量避免小数参与运算
前置递增运算符
++num
类似于 num = num + 1
但是更加简单
前置的运算顺序是,先自加后返回值
后置递增运算符
num++
类似于 num = num + 1
但是更加简单
前置自增和后置自增如果单独使用,效果一样
但是后置自增的运算顺序是。先返回原值,后自加
var num = 10;
console.log(++num + 10) // 这里返回21,运算后num变为11
var num = 10;
console.log(num++ + 10) // 这里返回20,运算后num变为11
比较运算符
比较运算返回的是布尔类型,一般的符号一般默认会转换数据类型进行比较
运算符 | 说明 | 案例 | 结果 |
---|---|---|---|
< | 小于 | ||
> | 大于 | ||
>= | 大于等于 | ||
<= | 小于等于 | ||
== | 等于 | ||
!= | 不等于 | ||
=== !== | 全等 要求值和数据类型都一致 |
逻辑运算符
逻辑运算符 | 说明 | 案例 |
---|---|---|
&& | “逻辑与”,简称“与” and | |
|| | ”逻辑或“,简称”或“ or | |
! | ”逻辑非“,简称“非” not |
短路运算(逻辑中断)
原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;
- 逻辑与
如果第一个表达式的值为真,则返回表达式2
如果第一个表达式的值为假,则返回表达式1
console.log(123 && 456); // 结果456
console.log(0 && 456); // 结果0
console.log(0 && 1 + 2 && 456 * 7) //结果0 ,在0之后的停止执行
-
逻辑或
如果第一个表达式的值为真,则返回表达式1
如果第一个表达式的值为假,则返回表达式2
console.log(123 && 456); // 结果123
console.log(123 && 1 + 2 && 456 * 7); // 结果123, 后面的不运行,已经中断了
console.log(0 && 1