字面量和变量
字面量是一些不可变的值,可以直接使用,如
123
变量
var a; //声名变量
a=123; //给变量赋值
var a=123; //声明变量并赋值
标识符
在JS中所有的可以由我们自主命名的都可以称为是标识符。例如:变量名、函数名、属性名都属于标识符命名一个标识符时需要遵守如下的规则:
- 标识符中可以含有字母、数字、_、$
- 标识符不能以数字开头
- 标识符不能是ES中的关键字或保留字
- 标识符一般都采用驼峰命名法
首字母小写,每个单词的开头字母大写,其余字母小写helloworld xxxYyyZzz
js中的数据类型(6个)
- String 字符串(基本数据类型)
js中的字符串需要使用引号引起来,使用双引号或单引号都可以,但是不要混着用。引号不能嵌套,双引号里不能放双引号,单引号里不能放单引号,可以单引号里用双引号,或者双引号里用单引号。
在字符串中我们可以使用\作为转义字符,当表示一些特殊符号时可以使用\进行转义 - Number 数值(基本数据类型)
js中所有的数值都是Number类型,包括整数和浮点数(小数)
JS中可以表示的数字的最大值Number.MAX_VALUE,零以上的最小值Number.MIN_VALUE5e-234
如果使用Number表示的数字超过了最大值,则会返回一个Infinity,表示正无穷
NaN 是一个特殊的数字,表示Not A umber。使用typeof检查一个NaN也会返回number
可以使用一个运算符 typeof来检查一个变量的类型
语法: typeof 变量
检查字符串时,会返回string检查数值时,会返回number
在JS中整数的运算基本可以保证精确,如果使用JS进行浮点运算,可能得到一个不精确的结果
- Boolean 布尔值(基本数据类型)
- Null 空值(基本数据类型)
Null类型的值只有一个,就是null
null这个值专门用来表示一个为空的对象
使用typeof检查一个null值时,会返回object - undefined 未定义(基本数据类型)
当声明一个变量,但是并不给变量赋值时,它的值就是Undefined
使用typeof检查一个undefined时也会返回undefined - Object 对象(引用数据类型)
强制类型数据转换
一般是针对String、Number、boolean来的
将其他的数据类型转换为String
方式一:
- 调用被转换数据类型的tostring()方法该方法
- 不会影响到原变量,它会将转换的结果返回
- 但是注意: null和undefined这两个值没有tostring()方法
方式二:
- 调用String()函数,并将被转换的数据作为参数作递给函数
使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,就不会调用tostring()方法
它会将 null 直接转换为“null"将 undefined 直接转换为“undefined"
将其他的数据类型转换为Number
方式一:
调用Number()函数来将a转换为Number类型
字符串 --> 数字
1。如果是纯数字的字符串,则直接将其转换为数字
2。如果字符串中有非数字的内容,则转换为NaN
3。如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
布尔 --> 数字
true 转成 1
false 转成 0
- Null --> 数字0
- undefined -->数字 NaN
方式二:
这种方式专门用来对付字符串
parseInt() 把一个字符串转换为一个整数
parseFloat() 把一个字符串转换为一个浮点数(parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数)
如果对非String使用parseInt()或parseFloat()它会先将其转换为String,然后在操作
将其他的数据类型转换为Boolean
使用Boolean()函数
数字 —> 布尔
-除了O和NaN,其余的都是true
-字符串 —> 布尔- 除了空串,其余的都是true
-null和undefined都会转换为farse
-对象也会转换为true
js中其他进制的数字
在js中,如果需要表示16进制的数字,则需要以0X开头
如果需要表示8进制的数字,则需要以0开头
如果要要表示2进制的数字,则需要以0b开头
可以在parseInt()中传递一个第二个参数,来指定数字的进制
算数运算符
运算符也叫操作符
通过运算符可以对一个或多个值进行运算,并获取运算结果
比如: typeof就是运算符,可以来获得一个值的类型
任何值和NaN做运算结果都是NaN
算数运算符
+
任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作
我们可以利用这一特点,来将一个任意的数据类型转换为String
我们只需要为任意的数据类型 + 一个“”即可将其转换为String这是一种隐式的类型转换
注意:
任何值做- * /运算时都会自动转换为Number
我们可以利用这一特点做隐式的类型转换,可以通过为一个值 - *1 /1来将其转换为Number
一元运算符
+正号,正号不会对数字产生任何影响-
-负号,可以对数字进行负号的取反
对于非Number类型的值
它会将先转换为Number,然后在运算
可以对一个其他的数据类型使用+,来将其转换为number。它的原理和Number()函数一样
&&与||布尔值的情况
对于非布尔值进行与或运算时
会先将其转换为布尔值,然后再运算,并且返回原值
- 与运算:
如果第一个值为true,则必然返回第二个值
如果第一个值为false,则直接返回第一个值
-或运算
如果第一个值为true,则直接返回第一个值
如果第一个值为false,则返回第二个值
关系运算符
- 任何值和NaN作比较都是false
- 对于非数值进行比较时,会将其转换为数字然后在比较
- 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较而会分别比较字符串中字符的Unicode编码
- NaN不和任何值相等,包括它本身
- 可以通过isNaN()函数来判断一个值是否是NaNT如果该值是NaN则返回true,否则返回false
===
全等,用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换。如果两个值的类型不同,直接返回false
不全等,用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型
语句
- prompt(“请输入:”) 该语句可以弹窗输入内容,其内容会作为语句的返回值