js的数据类型 和 类型转换 及 运算符
数据类型
简单(值/基本)类型数据: 熟练掌握
1.Number 数字 整型:整数 浮点型:小数 基本和数学中数字的概念完全相同
数字类型数据详解
1.数字类型数据分类 熟悉
整型:123 -123 123.0
浮点型:123.5 .5 不建议使用浮点型数据进行运算
NaN:计算错误时得到NaN NaN全拼为 Not a Number 特性:NaN不等于任何数字 NaN和任 何数字进行运算,得到的结果都是NaN
2.数字类型的进制转换 了解
八进制:0nnnnn 注意:八进制数字中 不能出现8或比八大的数字 如果出现了,就会默认按照十 进制计算
十六进制:0xnnnnn 注意:十六进制数字中 10-15使用a-f来表示
3.特殊的数字值 了解
无穷大:Infinity
在js中我们可以通过除0得到这个值 n / 0
4.查看数据的 数据类型 的 方法 typeof
用法:typeof 要查看类型的数据
2.String 字符串 引号包裹任何内容 得到的都是字符串 “” " " ‘1234’ ‘abc’ “123-123”
字符串详解
字符串的length属性
用法:字符串 . length 结果是当期字符串的长度(就是字符串中包含的字符个数)
获取字符串中指定的字符
在字符串中 给每一个字符 都添加了一个编号 编号从0开始 依次递增 我们称这种编号为字符的下标 (索引)
用法1:字符串[ 指定字符的下标 ]
注意:这种用法 在IE8- 浏览器中 无法正常工作 得到的结果是undefined
用法2:字符串.charAt(指定字符的下标)
这个方法是通用的, 没有兼容性问题
3.Boolean 布尔值 只有两个值 true(真) 和 false(假) boolean多用于判断 用作判断条件。true表示判断成功,false表示判断失败 也用来表示比较结果 3>4 false 4>3 true
4.Undefined 未定义:只有一个值 undefined 表示变量声明,但未赋值
5.Null 值为空 :只有一个值 null 表示 数据值为空
undefined和null的区别
在计算机中 内存被分为 栈区 和 堆区 两部分
栈区特点:容量较小 但是 存储数据有序 用来存储简单类型数据(数据量比较小)
堆区特点:容量很大 但是 存储数据无序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7sBaCbHU-1608218393401)(C:\Users\Administrator\Pictures\堆栈的概念.png)]
undefined就是变量声明未赋值时的 默认值
null 没有实际数据 对应的 空地址
复杂(引用)类型数据:
1.Array 数组
定义:数组是一个存储数据的容器
写作:[ 数据1 , 数据2,数据3,… ]
特点:在数组中 我们可以存储 任意多个数据 也可以存储任意类型数据
数组的length属性:表示数组长度(就是数组中包含的数据个数)
数组中存储的所有数据 每一个都有一个编号 这个编号从0开始 按照数据的排序依次递增 被称为数组 的下标。
在数组中 每一个数据 都被称为 数组项
2.Object 对象
定义:对象是一个存储数据的容器
写作:{ 属性名1:属性值,属性名2:属性值,… }
特点:对象使用属性的形式来存储数据 每一个属性可以存储一个数据 不同属性之间用逗号隔开
可以存储任意个属性,属性值也可以是任意类型的数据。
对象中,属性名不能重复
获取指定的属性值:对象 . 属性名
设置指定属性值:对象 . 属性名 = 属性值
3.Function 函数
定义:函数是用来存储代码的容器
写法:function 函数名 (){ 函数中存储的代码 }
注意:函数名 和 变量命名一样 需要符合 变量命名的规则和规范
注意:函数又被称为 js中的工具 存入函数中的代码 不会自行执行 需要开发者来使用一下函数 才能 执行
函数的调用(使用函数): 函数名();
函数不调用 不执行
数据类型转换
其他类型转换为数字:
Number: Number(要转换类型的数据)
数字字符串—>数字 非数字字符串—>NaN 空格字符串、空串—>0 true–>1 false—>0
undefined–>NaN null—>0
parseInt/parseFloat: parseInt/parseFloat(要转换类型的数据)
工作原理:上述两个方法 会从要转换的数据开头开始向后进行转换, 一直到遇到不能转换的位或彻底 转换完,就停止转换。
parseInt是将数据转换为整型数字 如果转换出的结果有小数位 会被直接舍弃 因此此方法可以取整
parseFloat是将数据转换为浮点型数字 可以保留小数位
isNaN:isNaN(指定数据) 效果是 判断 制定数据 如果转换为数字之后 是不是NaN 如果是 值为true 不是 值为false
注意:isNaN 转换数据类型 的 方式 是Number
其他类型转换为字符串
String:String(要转换的数据) 万能转换法
toString:要转换的字符串.toString() undefined 和 null不能使用
其他类型转换为布尔
Boolean : Boolean(要转换的数据) 万能转换法
数字–布尔 0–false 非0—true NaN—false
字符串–布尔 空串—false 非空—true
undefined—false null—false
隐式转换
1.其他类型转数字 要转换的数据-0 要转换的数据*1 要转换的数据/1
2.其他类型转字符串 要转换的数据 + “”
3.其他类型转布尔 !!要转换的数据 在js中!表示给布尔值取反
在实际开发中 我们建议大家使用 隐式转换 因为对计算机而言 更节省cpu资源
运算符
算术运算符
+ - * / % 和数学中的逻辑完全一样
+ 如果两个加数中 没有 字符串 都会直接将两个加数 转换为数字 进行数学加法
如果有一个加数是字符串, 就会执行字符串的拼接
% 获取除法运算的余数
3%2===1
++ -- 自加 自减
写法:n++/++n 表示n在原基础上 +1
n--/--n 表示n在原基础上 -1
注意:如果++/--写在前面 表示先自加/自减 后输出 但是 如果写在后面 表示先输出 后自加/自减
赋值运算符
= var a = 10 表示将赋值符号后面的数据10 赋值给 前面的变量 a
+= a += 10 <===> a = a + 10
-= a -= 10 <===> a = a - 10
*= a *= 10 <===> a = a * 10
/= a /= 10 <===> a = a / 10
比较运算符
> < >= <= 和数学中的比较运算符完全一样
等于:== 操作数1 == 操作数2 这个符号的作用 是判断两个操作数是否相等 只判断值是否相等,不判断 类型是否一致
123 == "123" 0 == ""
不等于:!= 比较逻辑和==完全一样 只不过 判断的是不相等
123 !== "abc" 123 !== "123"
全等:=== 操作数1 === 操作数2 这个符号用来比较两个操作数是否全等 既判断数据类型是否相同,也判 断值是否相等 数据类型和值都一样的时候 才全等 否则不全等
不全等:!== 操作数1 !== 操作数2 这个符号用来判断 两个操作数是否不全等 如果两个操作数值不同 或 类型不一样 都不全等
逻辑运算符
逻辑运算 的 操作数 都是 布尔值
与:&& 操作数1 && 操作数2
如果两个操作数 都是true 算式的值为true 只要有一个操作数是false 算式的值就是false
或:|| 操作数1 || 操作数2
如果两个操作数 都是false 算式的值为false 只要有一个是true 算式的值就是true
非:! !操作数
取反 true 变 false false 变 true
三目(三元)运算符
三元运算符可以进行判断
写法:判断条件 ? 条件成立执行的代码 : 条件不成立执行的代码
var a = 10;
a > 100 ? console.log("成立") : console.log("不成立")