1. JS的字面量与变量
字面量:
都是一些不可改变的值,如1,2,3,4,5
字面量都是可以直接使用,但我们一般都不会直接使用字面量变量:
变量可以用来保存字面量,而且变量的值是可以任意改变的
变量更加方便我们使用,所以在开发中都是通过变量去保存一个字面量
而很少使用字面量声明变量:
在JS
中使用关键字var
来声明一个变量
<script type="text/javascript">
var age = 100;
alert(age);
</script>
6. 标识符
标识符命名的规则:
- 标识符中可以含有
字母
,数字
,_
,$
。 - 标识符不能以数字开头
- 标识符不能是
JS
中的关键字和保留字 - 标识符一般都采用驼峰命名法
JS底层保存标识符时实际上是采用的Unicode
编码,所以理论上讲,所有的UTF-8
中含有的内容都可以作为标识符。
7. 字面量
在JS
中一共与6
种数据类型
-
Boolean
布尔值 -
Number
数值 -
String
字符串 -
Null
空值 -
Undefined
未定义 -
Object
对象
其中Boolean
,Number
,String
,Null
,Undefined
属于基本数据类型,而Object
属于引用数据类型
09.Boolean类型
<body>
Boolean 布尔值
布尔值只有两个,主要用来做逻辑判断
true:真
false: 假
<script type="text/javascript">
var bool = true;
console.log(bool);
console.log(typeof bool);
</script>
</body>
output:
true
boolean
8. Number
在JS
中所有的数值都是Number
类型,包括整数
和浮点数
可以使用一个运算符typeof
来检查一个变量的类型
-
typeof
变量 - 检查字符串时,会返回
string
- 检查数值时,会返回
number
如果使用Number
表示的数字超过了最大值,则会返回一个Infinity
,表示正无穷
-
Infinity
正无穷大 -
-Infinity
负无穷大 - 使用
typeof
检查Infinity
也会返回Number
NaN
是一个特殊的数字,表示Not A Number
使用typeof
检查一个NaN
也会返回number
在JS
中整数的运算基本可以保证精确
如果使用JS
进行浮点运算,可能得到一个不精确的结果,所以千万不要使用JS
进行精确度要求比较高的运算
<script type="text/javascript">
var a = 123;
var b = "123";
console.log(typeof a);
console.log(typeof b);
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
console.log(Number.MAX_VALUE * Number.MAX_VALUE);
var c = Infinity;
console.log(typeof c);
c = "abc" * "bcd";
console.log(typeof c); // NaN
c = Number.MIN_VALUE;
console.log(c); // 5e-324
c = 0.1 + 0.2;
console.log(c); // 0.30000000000000004
</script>
String字符串
- 在
JS
中字符串需要使用引号引起来 - 使用
双引号
或单引号
都可以,但是不要混着用 - 引号不能嵌套,双引号里面不能放双引号,单引号里面不能放单引号
<script type="text/javascript">
var a = '我说:"你好漂亮啊!",你说呢?,\\,\n';
alert(a);
</script>
10. Null和Undefined类型
<body>
Null:(空值)
这个类型的值只有一个,就是null
null这个值专门用来表示一个为空的对象
使用typeof检查一个null值时,会返回一个object
<script type="text/javascript">
var a = null;
console.log(a);
console.log(typeof a);
</script>
output:
null
object
Undefined:(未定义)
类型的值只有一个,就是undefined
当声明一个变量,但是并不给变量赋值时,
它的值就是undefined
使用typeof检查一个undefined时也会返回undefined
<script type="text/javascript">
var b;
console.log(b);
</script>
output:
undefined
</body>
11. 强制类型转换
强制类型转换
1.将一个数据类型强制转换为其他的数据类型
2.类型转换主要指,将其他的数据类型,转换为String,Number,Boolean
将其他数据类型转换为String
方法一:
调用被转换数据类型的toString方法
该方法不会影响到原变量,它会将转换的结果返回
但是注意:null和undefined这两个值没有toString方法,
<script type="text/javascript">
var a = 123;
var b = a.toString();
console.log(typeof a);
console.log(a);
console.log(typeof b);
console.log(b);
</script>
<!--
方法二:
调用String()函数,并将被转换的数据作为参数传递给函数
使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,就不会调用toString()方法
会将null直接转换为"null"
会将undefined直接转换为"undefined"
-->
<script type="text/javascript">
var a = 123;
var b = String(a);
console.log(typeof a);
console.log(a);
console.log(typeof b);
console.log(b);
</script>
12. 转换为Number
将其他的数据类型转换为Number,
转换方式一:
使用Number()函数,
字符串 --- 数字
1.如果是纯数字的字符串,则直接将其转换为数字
2.如果字符串中有非数字内容,转换为NaN
3.如果字符串是一个空串或者多个空格,则转换为0
4.true转换为1,false转换为0
5.null转换为0
6.undefined转换为NaN
<script type="text/javascript">
var a = " ";
a = Number(a);
a = false;
a = Number(a);
a = null;
a = Number(a);
a = undefined;
a = Number(a);
console.log(typeof a);
console.log(a);
</script>
<!--
调用parseInt()函数将b转换为Number
parseInt()可以将一个字符串中的有效的整数内容取出来,转换为Number
parseFloat()它可以获取有效的小数位
如果对非String类型的内容使用parseInt(),parseFloat()它会先将其转换为
String,然后再操作。
-->
<script type="text/javascript">
var b = "123px";
b = parseInt(b); // 123
b = "123.456px";
b = parseFloat(b); // 123.456
console.log(typeof b);
console.log(b);
</script>
13.其他进制的数
在JS中,如果需要表示16进制的数,则需要以0x开头
如果需要表示8进制的数,则需要以0开头
如果需要表示2进制的数,则需要以0b开头
<script type="text/javascript">
var a = 0x123; // 291 16进制
a = 070; // 56 8进制
a = 0b10; // 2进制 2
// 像"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
a = "070";
a = parseInt(a,10); // 第二个参数,指定数字的进制
console.log(typeof a);
console.log(a);
</script>
14. 转换为Boolean
<!--
将其他的数据类型转换为Boolean,使用Boolean()函数
1.数字---》Boolean:除了0和NaN,其余的都是true
2.字符串---》Boolean:除了空串,其余的都是true
3.null和undefined都会转为false
4.对象也会转为true
-->
<script type="text/javascript">
var a = 123;
a = undefined;
a = Boolean(a);
console.log(typeof a);
console.log(a);
</script>