js是弱类型语言,声明变量的时候并不能确定类型,只能赋值了才能确定类型
- 数字类型(number)
JavaScript 中的正数、负数、小数等 统一称为 数字类型。
let score = 100 //正整数
let num = 08 / 0xA //八进制 / 十六进制
MAX_VALUE 数值最大值 Number.MAX_VALUE
MIN_VALUE 数值最小值
Infinity 代表无穷大 console控制台可以看
-infinity 代表无穷小
NaN 代表一个非数值
isNaN() 判断非数字,并且返回一个值,如果是数字返回false,如果不是数字返回true
注意点:
JS 是弱数据类型,变量到底属于那种类型,只有赋值之后,我们才能确认
Java是强数据类型 例如 int a = 3 必须是整数
- 字符串类型(string)
通过单引号(' ') 、双引号(" ")或反引号( ` )包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
document.write(‘我是’+str+’刘德华’)
2.1 可以通过length来获取字符串的长度,如str.length
2.2 拼接字符串和变量: +是连接符
字符串 + 如何类型 =拼接好的字符串 console.log(‘字符串’ + 变量 + ’字符串’)
2.3 模板字符串:${变量 | 表达式}
会解析变量和表达式,替换这个结构; ``还可以创建多行文本
document.write(`大家好,我叫${name} , 今年${age}岁`) //在引号里面的变量
2.4 转义字符:
\b (退格符) \t(水平制表符) \n(换行符) \v(垂直制表符)
\f(换页符) \r(回车符) \”(双引号) \’(单引号) \\(反斜杠符)
注意事项:
1. 无论单引号或是双引号必须成对使用
2. 单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单,或者外单内双)
3. 必要时可以使用转义符 \,输出单引号或双引号
4. 拼接字符串${name}时候,需要写在反引号``里面
- 布尔类型(boolean)
表示肯定或否定时在计算机中对应的是布尔类型数据。
它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)。
- 未定义类型(undefined)
未定义是比较特殊的类型,只有一个值 undefined。
什么情况出现未定义类型?
只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。
后期有一个经典场景,就是调用方法时没有传递参数,造成方法的参数是undefined
情况 | 说明 | 结果 |
let age ; console.log (age) | 只声明 不赋值 | undefined |
console.log(age) | 不声明 不赋值 直接使用 | 报错 |
age = 10; console.log (age) | 不声明 只赋值 | 10 (不提倡) |
- null(空类型) 是boject类型
null 表示 值为 空
let age = null
null 和 undefined 区别:
undefined 表示没有赋值
null 表示赋值了,但是内容为空
null 开发中的使用场景:
官方解释:把 null 作为尚未创建的对象
大白话: 将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null
null的场景只有一个:为引用类型设置初始值
- 控制台输出语句和检测数据类型
6.1 控制台输出语句:
let age = 18
let name = ‘刘德华’
let bool = true
console.log(age)
console.log(name)
console.log(bool)
控制台语句经常用于测试结果来使用。 可以看出数字型和布尔型颜色为蓝色,字符串和undefined颜色为灰色
6.2 typeof检测类型:
console.log(typeof age)
console.log(typeof name)
- 类型转换:
注意事项:使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算。
7.1 隐式转换
某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
规则:
+ 号两边只要有一个是字符串,都会把另外一个转成字符串
除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型
缺点:
转换类型不明确,靠经验才能总结
小技巧:+号作为正号解析可以转换成Number
console.log(11+11) 22
console.log(‘11’+11) 1111
console.log(‘11’-11) 0
console.log(typeof ‘123’) string
console.log(typeof +’123’) number
console.log(+’11’ + 11) 22
+prompt(‘’) 前面加+可以转换数值类型
7.2 显式转换
JavaScript提供了三个方法实现基本数据类型之间的转换:
String():将其他类型的值转换为字符串。例如,String(123)将数值123转换为字符串“123”。
Number():将其他类型的值转换为数值型数据。例如,Number(false)可以将布尔型直接量false转换为数值0。 如果转换时候发现非数值,则返回NaN
parseInt(): 将字符串转换为整数
n=parseInt(“123abc”);
n=parseInt(“123abc”,8); //作为八进制转换
parseFloat():将字符串转换为浮点数
n=parseFloat(“123abc”);
Boolean():将其他类型的值转换为布尔型值。除0、NaN、null、undefined、“”(空字符串)被转换为false外,所有其他值都被转换为true。
eval(): 计算字符串表达式或语句的值
n=eval(“8*2”);
运算符 | 说明 |
? : | 三目条件运算符,例如x?a:b表示如果x为真,则整个表达式的值为a的值,否则为b的值 |
, | 逗号运算符,计算两个表达式的值,并返回第二个表达式的值。 |
delete | 用于删除对象并释放该对象所占用的空间 |
typeof | 用于返回操作数的数据类型 typeof(str) / typeof str //判断是什么数据类型 |
void | 运算符对表达式求值,并返回 undefined |
instanceof | 判断对象是否是指定的对象类型 |
new | 用于创建用户自定义对象实例 |
in | 判断指定属性是否是对象的属性。当指定属性是对象的属性时返回真,否则返回假 |