变量的命名规则和规范
规则 - 必须遵守的,不遵守会报错
由字母、数字、下划线、$符号组成,不能以数字开头
不能是关键字和保留字,例如:for、while。
区分大小写
规范 - 建议遵守的,不遵守不会报错
变量名必须有意义
遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。例如:userName、userPassword
变量类型
1.Number(数字类型)
- 数值字面量:数值的固定值的表示法 110 1024 60.5
-
浮点数-浮点数的精度问题
-
var n = 5e-324; // 科学计数法 5乘以10的-324次方
浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数
var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004
console.log(0.07 * 100);
不要判断两个浮点数是否相等
最小值:Number.MIN_VALUE,这个值为: 5e-324
最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
无穷大:Infinity
无穷小:-Infinity
-
NaN:not a number
-
NaN 与任何值都不相等,包括他本身
-
-
isNaN: is not a number 是 不是一个数?
2.Boolean(布尔类型)
-
Boolean字面量: true和false,区分大小写
-
计算机内部存储:true为1,false为0
3.String(字符串类型)
字符串长度
var str = '黑马程序猿 Hello World';
console.log(str.length);
字符串拼接
- 如果左右两边存在字符串,那么就是拼接 ‘100’+100 ==100100
- 除了+之外的 - * / 那么进行计算 '100'-5 ==95
- 如果两边都是字符串 - * / 其结果为NaN
- 两边如果都是数字,那么就是算术功能。
console.log(11 + 11); //22
console.log('hello' + ' world'); //hello world
console.log('100' + '100'); // 100100
console.log('11' + 11); // 1111
console.log('male:' + true); //male:true
4.null(空类型)
不占据内存,可以清除变量
5.undefine(未定义类型)
变量声明了没定义
6.Array(数组类型)
后面详细介绍
7.Object(对象类型)
后面详细介绍
练习 :不使用临时变量交换变量值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var num1=10,num2=20;
num1=num1+num2;
num2=num1-num2;
num1=num1-num2;
</script>
</body>
</html>
获取变量的类型
var age = 18;
console.log(typeof age); // 'number'
字符串转换
字符串的颜色是黑色的,数值类型是蓝色的,布尔类型也是蓝色的,undefined和null是灰色的
1.被动转换:通过变量.的方式(对undefined null 不起作用)
var num=10;
console.log(num.toString);
2强制转换:通过类型()的方式
var num=10;
console.log(Number(num));
数字转换
1.Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN
console.log(Number("8.12.1")); //NaN
// console.log(Number("8.12ff")); //NaN
// console.log(Number("ff")); //NaN
2.parseInt() parseFloat
如果第一个数字,就解析第一个数字,遇到字符结束,如果第一个不是数字或者符号为NaN
console.log(parseInt("9.44.4")); //9
// console.log(parseInt("9ddd")); //9
// console.log(parseInt("gg")); //NaN
// console.log(parseInt("8")); //8
// console.log(parseInt("gg4")); //NaN
// console.log(parseFloat("8.11ff")); //8.11
// console.log(parseFloat("ff8.11")); //8.11
// console.log(parseFloat("8.12.3ff")); //8.12
// console.log(parseFloat("8.12.1")); //8.12
Boolean转换
除了特殊的几个转换为false,其他基本为ture
0 undefined null NaN
console.log(Boolean(num));
关系运算符
==与===的区别:==只进行值得比较,===类型和值同时相等,则相等
console.log("2"==2); //ture
console.log("2"===2); //flase
console.log("2"!=2); //flase
console.log("2"!==2); //ture