day02
一、数据类型
数据根据类型不同可以分为两大类:简单(基本/原始)数据类型 复杂数据类型
1.基本数据类型
基本数据类型:Number String Boolean null undefined
1.1 Number
数值类型
所有的数字都是数值类型 1,3,5,1.1,1.11,-100,-0.111…
特殊值:NaN
1.2 String
字符串类型
被"" 或 ‘’ 包裹
注意:字符串中内容会原样输出
1.3 Boolean
布尔类型
true false 真 假
多用于判断
1.4 null
空指针 啥都没有
注意:若使用typeof来检测null的类型,结果:object
例如:
var o=document.getElementById("box");
console.log(o);//null
1.5 undefined
未定义
变量定义了,但没有初始化
既是一个值,又是一种类型
2.复杂数据类型
Object:对象类型 无数个 万物皆对象
对象包含两部分:属性(特点)、方法(功能)
2.1 Array
数组:存储大量的数据 []
数组中每一个元素都有一个唯一的下标索引,从0开始
数组中支持任意的数据类型
属性:length 长度 数组中元素的个数
取值:数组名[索引]
赋值: 数组名[索引]=值;
2.2 Object
对象 {}
对象中的数据:键值对 key:value
//键值对
var obj = {
name: "李四",
age: 20,
addr: "航海路"
};
console.log(obj,typeof obj);
//取出对象的数据
console.log(obj.name,obj.age,obj.addr);
//赋值 修改
obj.addr="中州大道";
obj.name="李大锤";
2.3 Function
函数 封装
函数不会自动执行,需要调用才可以执行
function fn(){
//函数体
}
3.typeof
用来判定变量的数据类型
//用法:
typeof 标识符;
二、运算符
用来做运算的
1.算术运算符
+
-
*
/
%
++ 自增
-- 自减
注意:
-
+两边只要有一个操作数是字符串类型,则执行拼接操作,拼接结果为:字符串类型
-
自增自减运算符前置和后置对变量自身没有影响
-
自增自减运算符出现在了赋值语句中
- 运算符前置: 先运算,再赋值
- 运算符后置:先赋值,后运算
2.赋值运算符
=
+= 先运算,再赋值
—=
*=
/=
%=
3.比较运算符
比较运算符的运算结果为:布尔类型 true false
>
<
<=
>=
== 等于
!= 不等于
=== 等于(全等)
和=的区别:
== 只比较数值
=== 既比较数值,又比较数据类型
字符串的比较:按照ASCII码一位一位进行比较的
4.逻辑运算符
一般情况下,逻辑运算符的运算结果为:布尔类型
&& 逻辑与 并且
运算规则:两边均为真,则结果为真,其它都是假
|| 逻辑或 或者
运算规则:两边有一个为真,则结果即为真
! 逻辑非 取反
5.条件(三目)运算符
条件运算符经常用于条件判断
? :
表达式1 ? 结果1 : 结果2
6.运算符的优先级
三、数据类型转换
在很多的业务中,都需要进行数据类型之间的转换
重点讨论:String和Number类型之间的数据转换
1.强制类型转换
1.1 字符串类型—>数值类型
- parseInt() 转换为整数
- parseFloat() 原样转换 转换过程中若有小数,保留小数
- Number()
- 注意:只能转换字符串类型的数字 “5”
- “55hello” “hello” 都会被转换为NaN
- 可以将空字符串转换为 0
方法补充:
-
isNaN() 判断字符是否为非数字 true false
- 注意: 5 和 “5” 都认为是数字
1.2 将其它类型转换为字符串类型
- 拼接空字符串
- toString()
- String()
2.隐式类型转换
在运算过程中进行的转换
console.log(5 + '3');
console.log('5' * '3');//number
console.log('5' - 3);
console.log('5' % 2);