字面量和变量
- 字面量: 都是一些不可改变的值 如 1 2 3
- 字面量都是可以直接使用,但是我们一般不会直接使用字面量
- 变量
- 变量可以用来保存字面量,而且变量的值是可以任意改变的
- 变量更加方便我们使用,所以在开发中都是通过变量去保存一个字面量,很少使用字面量
- 声明变量:
- 在JS中使用var关键字来声明一个变量
- 为变量声明且赋值 var a=123;
标识符
-
概念: 在JS中所有的可以我们自主命名的都可以称为标识符 例如:变量名、函数名、属性名都属于标识符
-
命名一个标识符需要遵守如下的规则:
-
1.标识符中可以含有字母、数字、_ 、$
-
2.标识符不能以数字开头
-
3.标识符不能是ES中的关键字或保留字
-
4.标识符一般都采用驼峰命名法
首字母小写,每个单词的开头字母大写,其余字母小写 helloWorld
-
-
**JS底层保存标识符时实际上是采用Unicode编码,所以从理论上说,所有的utf-8中所含的内容都可以作为标识符 **
数据类型
- 数据类型指的是字面量的类型
- 在JS中一共有六种数据类型
- String 字符串
- Number 数值
- Boolean 布尔值
- Null 空值
- Undefined 未定义
- Object 对象
字符串
-
其中String Number Boolean Null Undefined属于基本数据类型 而Object属于引用数据类型
-
String字符串
-
在JS中字符串要使用引号引起来
-
使用单引号和双引号都行,但是不要混着用
-
引号不能嵌套,双引号不能放单引号,单引号不能放双引号
-
在字符串中可以使用
\
作为转义字符当表示一些特殊符号时使用
\
进行转义\"
表示一个"
,\'
表示一个'
,\n
换行 ,\t
制表符 ,\\
表示\
-
Number类
-
在JS中所有的数值都是Number类 包括整数和浮点数(小数)
-
typeof
用法 返回一个变量的类型-
var a=123; var b="123";
console.log(typeof a)
返回 numberconsole.log(typeof b)
返回String
-
-
**
Number.MAX_VALUE
** JS中可以表示的数字的最大值Number.MAX_VALUE
: 1.7976931348623157e+308- 当然
Number.MAX_VALUE
也不是最大的数字 如果使用Number表示的数字超过了最大值,则会返回一个Infinity(正无穷) - 使用
typeof
检查Infinity
也会返回Number
-
Number.MIN_VALUE 返回 5e-324(科学记数法) 大于0的最小值
-
NaN 是一个特殊的数字 表示 not a Number
-
如
a= "abc" * "ccb";
console.log(a)
返回NaNconsole.log(typeof a)
返回Number
-
-
在JS中的整数运算基本可以保证精确
- 如果使用JS进行浮点元素,可能得到一个不精确的结果 如1/3,这在所有语言中都有这个问题
-
JS中其他进制的数字
-
十六进制 以0x开头 a=0x123;
-
八进制 以0开头 a=020;
-
二进制 以0b开头 a=0b11;
-
注意 : 像"070"这样的字符串,有些浏览器会当8进制解析,有些浏览器会当作10进制来解析
可以在parseInt()中传递一个第二个参数,来指定数字的进制
var a="070"
a=parseInt(a,10);
-
布尔值Boolean
- true 逻辑 真
- false 逻辑 假
Null和Undefined
- Null(空值)类型的值只有一个 就是Null
- null这个值专门用来表示一个空的对象
- 用typeof检查一个null值时,会返回object
- Undefined(未定义)类型的值只有一个,就undefined
- 当声明一个变量,但是并不给变量赋值,它的值就是undefined
- 使用typeof检查 一个undefined时也会返回undefined
强制类型转换
-
指的是 将一个数据类型转换为其他数据类型
-
类型转换主要指,将其他数据类型,转换为
- String Number Boolean
转换为String
-
方式一
-
调用被转换数据类型的toString()方法
-
该方法不会影响到原变量,它会将转换的结果返回
-
var a=123;
a.toString();
console.log(typeof a);
还是返回Number类的a=a.toString();
console.log(typeof a);
这次返回String类的 -
但是注意:null和undefined这两个值没有toString()方法,如果调用会报错。
-
-
方式二:
-
调用String()方法,并将转换的数据作为参数传递给函数
-
var a=123;
a=String(a)
-
使用String() 函数做强制类型转换时
-
对于Number和Boolean实际上就是调用的toString()方法
-
但是对于null和undefined,就不会调用toString()方法
它会将null转换为 “null”
将undefined直接转换为 “undefined”
-
-
转换为Number
-
方式一:
-
使用Number()函数
-
String --> Number
1.如果是纯数字的字符串,则直接将其转换为数字
2.如果字符串中有非数字的内容,则转换为NaN
3.如果字符串是 一个空串 或者 一个全是空格的字符串,则转换为0
-
Boolean --> Number
-
true 转成1
false 转成0
-
-
null --> Number
- null 转成 数字0
-
Undefined --> Number
- undefined 转成 数字NaN
-
-
-
方式二 : 这种方式专门对付字符串
-
parseInt()
把一个字符串转换为一个整数-
parseInt()
可以将一个字符串中有效的整数内容取出来 然后转换为Number-
如
var a="123px";
a=parseInt(a);
console.log(a);
输出123 但是
a=Number(a);
console.log(a)
输出NaN -
parseInt() 也有缺点 ,不能取出字母中间的数字,从左开始检索,一旦遇到字母就停止 如
var a="123a456px";
a=parseInt(a)
console.log(a);
返回结果还为123
-
-
-
parseFloat()
把一个字符串转换为浮点数parseFloat()
与parseInt()
区别在于前者可以获得有效的小数
-
如果对非String使用
parseInt()或parseFloat()
它会先将其转换为String然后操作
-
转换为Boolean
-
使用Boolean()函数
- Number --> Boolean
- 除了0和NaN,其余的都是true
- String --> Boolean
- 除了空串,其余的都是true
- null 和 undefined 都会转换为false
- Object 都会被转化为true
- Number --> Boolean
-
方式二(隐式类型转换):
-
把任意的数据类型做两次非运算,即可将其转换为布尔值
-
var a="world";
a=!!a; // true
-
-