JS 基础笔记
弹出一个警告框
alert("hello");
控制台输出
console.log("hello");
标识符
- 在JS中所有的可以由我们自主命名的都可以称为是标识符
- 例如:变量名、函数名、属性名都属于标识符
- 命名一个标识符时需要遵守如下的规则:
- 1.标识符中可以含有字母、数字、_、$
- 2.标识符不能以数字开头
- 3.标识符不能是ES中的关键字或保留字
- 4.标识符一般都采用驼峰命名法
- JS底层保存标识符时实际上是采用的Unicode编码,所以理论上讲,所有的utf-8中含有的内容都可以作为标识符
数据类型
String 字符串
- 在JS中字符串需要使用引号引起来
- 使用双引号或单引号都可以,但是不要混着用
- 引号不能嵌套,双引号不能放双引号,单引号不能放单引号
- 在字符串中我们可以使用
作为转义字符,当表示一些特殊符号时可以使用
进行转义
"
表示"
'
表示'
n
表示换行t
制表符\
表示
Number 数值类型
- 在JS中所有的数值都是Number类型,包括整数和浮点数(小数)
- JS中可以表示的数字的最大值
Number.MAX_VALUE
1.7976931348623157e+308- 大于0的最小值
Number.MIN_VALUE
5e-324- 如果使用Number表示的数字超过了最大值,则会返回一个
Infinity
表示正无穷-Infinity
表示负无穷- 使用typeof检查Infinity也会返回number
NaN
是一个特殊的数字,表示Not A Number
使用typeof
检查一个NaN也会返回number
- 在JS中整数的运算基本可以保证精确
- 如果使用JS进行浮点运算,可能得到一个不精确的结果所以千万不要使用JS进行对精确度要求比较高的运算
Boolean 布尔值
- 布尔值只有两个,主要用来做逻辑判断
- 表示真
true
- 表示假
false
Null (空值)类型的值只有一个,就是
null
- null这个值专门用来表示一个为空的对象
- 使用typeof检查一个null值时,会返回object
Undefined(未定义)类型的值只有一个,就
undefind
- 当声明一个变量,但是并不给变量赋值时,它的值就是
undefined
- 使用typeof检查一个
undefined
时也会返回undefined
强制类型转换
指将一个数据类型强制转换为其他的数据类型
类型转换主要指,将其他的数据类型,转换为
String Number Boolean
将其他的数据类型转换为
String
- 方式一
- 方式二
- 调用
String()
函数,并将被转换的数据作为参数传递给函数- 使用
String()
函数做强制类型转换时,
- 对于
Number
和Boolean
实际上就是调用的toString()
方法- 但是对于
null
和undefined
就不会调用toString()
方法,它会将null
直接转换为"null"
,将undefined
直接转换为"undefined"
将其他的数据类型转换为
Number
- 转换方式一
- 使用
Number()
函数
- 字符串
-->
数字
- 1.如果是纯数字的字符串,则直接将其转换为数字
- 2.如果字符串中有非数字的内容,则转换为
NaN
- 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为
0
- 布尔
-->
数字
true
转成1
false
转成0
null -->
数字0
undefined -->
数字NaN
- 转换方式二
- 这种方式专门用来对付字符串
parseInt()
把一个字符串转换为一个整数parseFloat()
把一个字符串转换为一个浮点数将其他的数据类型转换为
Boolean
- 使用
Boolean()
函数
- 数字
--->
布尔
- 除了
0
和NaN
,其余的都是true
- 字符串
--->
布尔
- 除了空串,其余的都是
true
null
和undefined
都会转换为false
- 对象也会转换为
true
进制的数字
16
进制的数字,则需要以0x
开头8
进制的数字,则需要以0
开头2
进制的数字,则需要以0b
开头- 不是所有的浏览器都支持
运算符也叫操作符
typeof
就是运算符,可以来获得一个值的类型它会将该值的类型以字符串的形式返回number string boolean undefined object
- 算数运算符
- 当对非
Number
类型的值进行运算时,会将这些值转换为Number
然后在运算- 任何值和
NaN
做运算都得NaN
+
加法
- 可以对两个值进行加法运算,并将结果返回
- 如果对两个字符串进行加法运算,则会做拼串,会将两个字符串拼接为一个字符串,并返回
- 任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作
-
减法
- 可以对两个值进行减法运算,并将结果返回
*
乘法
- 可以对两个值进行乘法运算
/
除法
- 可以对两个值进行除法运算
%
取模运算
- 取余数
- 任何值做
- * /
运算时都会自动转换为Number
一元运算符,只需要一个操作数
+
正号
+
正号不会对数字产生任何影响-
负号
- 负号可以对数字进行负号的取反
- 对于非
Number
类型的值,它会将先转换为Number
,然后在运算可以对一个其他的数据类型使用+
,来将其转换为number
它的原理和Number()
函数一样- 自增
++
- 通过自增可以使变量在自身的基础上增加1
- 对于一个变量自增以后,原变量的值会立即自增1
- 自增分成两种:后
++(a++)
和 前++(++a)
- 无论是
a++
还是++a
,都会立即使原变量的值自增1- 不同的是
a++
和++a
的值不同a++
的值等于原变量的值(自增前的值)++a
的值等于新值 (自增后的值)- 自减
--
- 通过自减可以使变量在自身的基础上减1
- 自减分成两种:后
--(a--)
和 前--(--a)
- 无论是
a--
还是--a
都会立即使原变量的值自减1- 不同的是
a--
和--a
的值不同a--
是变量的原值 (自减前的值)--a
是变量的新值 (自减以后的值)
三种逻辑运算符
!
非
- !可以用来对一个值进行非运算
- 所谓非运算就是值对一个布尔值进行取反操作,
true
变false
,false
变true
- 如果对一个值进行两次取反,它不会变化
- 如果对非布尔值进行元素,则会将其转换为布尔值,然后再取反
- 将一个其他的数据类型转换为布尔值
- 可以为一个任意数据类型取两次反,来将其转换为布尔值,
- 原理和
Boolean()
函数一样&&
与
&&
可以对符号两侧的值进行与运算并返回结果- 运算规则
- 两个值中只要有一个值为
false
就返回false
,只有两个值都为true
时,才会返回true
- JS中的“与”属于短路的与,如果第一个值为
false
,则不会看第二个值||
或
- ||可以对符号两侧的值进行或运算并返回结果
- 运算规则
- 两个值中只要有一个
true
,就返回true
如果两个值都为false
,才返回false
- JS中的“或”属于短路的或如果第一个值为
true
,则不会检查第二个值&& ||
非布尔值的情况
- 对于非布尔值进行与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值
- 与运算
- 如果第一个值为
true
,则必然返回第二个值- 如果第一个值为
false
,则直接返回第一个值- 或运算
- 如果第一个值为
true
,则直接返回第一个值- 如果第一个值为
false
,则返回第二个值
关系运算符
- 非数值的情况
- 对于非数值进行比较时,会将其转换为数字然后在比较
- 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较而会分别比较字符串中字符的Unicode编码
相等运算
==
相等
- 比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型然后在比较
!=
不相等
- 不相等也会对变量进行自动的类型转换然后在比较
===
全等
- 用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换
- 如果两个值的类型不同,直接返回false
!==
不全等
- 用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型转换
- 如果两个值的类型不同,直接返回true