1.数据类型
js的数据类型有6大数据类型
5种基本数据类型
number 数值类型
string 字符串类型
boolean 布尔类型 true和false
undefined 未定义
null 空对象
1种特殊数据类型(复杂数据类型 引用数据类型 对象数据类型)
array 数组 []
object 对象 {}
function 函数 funtion(){}
2.number类型
number数值类型:整数、小数、负数、16进制、8进制、NaN
<script>
1.整数
var a = 10;
console.log(typeof (a));//number
2.小数
var b = 3.1415926;
console.log(typeof (b));//number
var d = .5;
console.log(d, typeof (d));//0.5 number
var e = 5.0;
console.log(e);//5
3.负数
var c = -10;
console.log(typeof (c));//number
4.NaN not a number 不是一个数 当运算没有结果的时候就是NaN
var x = NaN;
console.log(typeof (x));//number
var y = 10 / "你好";
console.log(y);//NaN
注意:任何两个NaN都不相等 == 判断左右两侧是否相等
console.log(NaN == NaN);//false
------------------------了解-------------------
浏览器是显示10进制的数据 如果定义的8进制或者16进制 计算机会自动转成10进制
5.8进制数:以0开头 范围在0-7之间
var x1 = 077;
console.log(x1);//63
var x2 = 0566;
console.log(x2);
6.16进制数据:以0x开头 范围在0-9 a-10 b-11 c-12 d-13 e-14 f-15
var x3 = 0xff;
console.log(x3);//255
7.精度缺失 0.1+0.2 == 0.3
计算机在运算的时候,会把数转换二进制数据然后再进行计算 计算结果再转成10进制 转换过程中会造成精度缺少
console.log(0.1 + 0.2 == 0.3);//false 只要不把小数点计算当成判断条件 是不会影响代码执行的
</script>
3.string类型
string字符串类型:引号( " " ' ')引起来的都是字符串 所有从页面获取的内容都是字符串数据类型
字符串.length:获取字符串的长度
字符串[下标]:.获取字符串中某个字符
字符串.charAt(下标):获取字符串某个字符
4.boolean类型
boolean布尔类型 true和false
<script>
var b1 = true;
var b2 = false;
console.log(typeof b1, typeof b2);//boolean boolean
//作用:用作判断条件
if (false) {//如果判断条件为true 执行{}中的代码
console.log("真");
}
</script>
5.undefined和null类型
undefined 未定义 null 空对象
undefined
未定义 你去快递站拿快递 但快递站没有你的包裹
null
空对象 你去快递站拿快递 快递员给了一个包裹 但是这个包裹是空的
undefined 和null的区别?
undefined 未定义 声明变量没有赋值 没有存储空间
null 空对象 有存储空间
6.数据类型的转换
将一种数据类型转成另一种数据类型
强制转换(程序员通过某些方法实现转换)
隐式转换(计算机自动转换为其他数据类型)
6.1强制转换成number类型
Number() parseInt() parseFloat()
6.1.1Number强制转换
Number(要转换的数据):将数据转换为Number类型 如果转换不了则是返回NaN
总结:Number方法可以转换的:string类型(纯数字、""-0 " "-0)、boolean类型(true-1,false-0)、null(0) 其他都是NaN==
6.1.2parseInt转换
parseInt(要转换的数据):将数据转换为number类型,从左往右开始转换,遇到不能转换的或者末尾结束,如果一开始就不能转换则是NaN,结果取整(舍弃小数)
6.1.3parseFloat转换
parseFloat(要转换的数据):将数据转换为number类型,从左往右开始转换,遇到不能转换的或者末尾结束,如果一开始不能转换则是NaN,结果保留小数
6.2强制转换为boolean类型
Boolean(要转换的数据):将数据类型强制转换为boolean类型 结果为true或者是false
number类型:非0即真 NaN也是false
string类型:有值即为真
null undefined
总结:Boolean结果为false的有:0 NaN null undefined ""
6.3强制转换为string类型
String() 要转换的数据.toString()
6.3.1 String强制转换
String(要转换的数据):将数据转换string类型,直接是在数据外面加引号
6.3.2 toString强制转换
要转换的数据.toString: 强制转换为string类型
null和undefined没有toString这个方法的
6.4其他小方法
1. toFixed(n):保留n位小数
2. isNaN:is not a number 是不是 不是一个数字 false是数字 true不是一个数字
isNaN 判断之前会先调用Number方法进行强制转换 再来进行判断 Number(true)
7.运算符和表达式
运算符:连接一个以上的操作符中间的符号
表达式:由操作数和运算符组成的式子
10 + 20 var a = 10
+运算符 10 20操作数 表达式 10 + 20
运算符的分类
算术运算符 + - * / %(取余 取模) ++ --
赋值运算符 = += -= *= /= %=
逻辑运算符
比较运算符
三目运算符
表达式的分类:算术表达式 赋值表达式 逻辑表达式 比较表达式 三目表达式
7.1算术运算符
算术运算符 + - * / %(取余 取模) ++ --
特殊情况
1.精度缺少
2.隐式转换:在运算过程中 数据自动进行转换
隐式转换的规律 都会转成number类型再进行计算
字符串拼接+ 会拼接
自增++和自减--
1.基础用法
++ 自增 自加1 i++ ++i 都是自加1
2.参与运算
++ 自增 自加1 i++ ++i 都是自加1
++在前:先自加1,后运算(打印)
++在后 先运算(打印),后自加1
7.2赋值运算符
赋值运算符 = += -= *= /= %=