数据类型
基本数据类型:number(数字型) . string(字符串型). boolean(布尔型) . undefined(未定义型) . null(空类型)
数字型
即我们数学中学习到的数字,可以是整数、小数、正数、负数
// js 弱数据类型的语言 只有当我们赋值了,才知道是什么数据类型
let score = 100 // 正整数
let price = 12.345 // 小数
let temperature = -40 // 负数
// java 强数据类型的语言 int num = 10
JavaScript 中的数值类型与数学中的数字是一样的,分为正数、负数、小数等。
字符串型
通过单引号( '') 、双引号( "")或反引号包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
注意事项:
- 无论单引号或是双引号必须成对使用
- 单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单 或者外单内双)
- 必要时可以使用转义符 ``,输出单引号或双引号 字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的 length 属性可以获取整个 字符串的长度
// 检测获取字符串的长度 length
let str = 'my name is ldh';
console.log(str.length);
字符串拼接
+运算符 可以实现字符串的拼接。
口诀:数字相加,字符相连
console.log(1 + 2)
console.log('我叫' + 'sober')
let age = 25
document.write('我今年' + age + '岁了')
模板字符串
模板字符串 外面用`` 里面 ${变量名}
// let age = 20
// document.write(`我今年${age}岁了`)
let uname = prompt('请输入您的姓名:')
let age = prompt('请输入您的年龄:')
// 输出
document.write(`大家好,我叫${uname}, 我今年贵庚${age}岁了`)
布尔型
表示肯定或否定时在计算机中对应的是布尔类型数据,它有两个固定的值 true 和 false,表示肯定的数据用 true,表示否定的数据用 false。
// 1. true false 是布尔型字面量
console.log(3 > 4)
let isCool = false
console.log(isCool)
未定义
未定义是比较特殊的类型,只有一个值 undefined,只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。
// 2. 未定义类型 弱数据类型 声明一个变量未赋值就是 undefined
let num
console.log(num)
空类型
JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值
// 3. null 空的
let obj = null
console.log(obj)
// 计算有区别
console.log(undefined + 1) // NaN
console.log(null + 1) // 1
undefined与null的区别
undefined 表示没有赋值
null 表示赋值了,但是内容为空
数据类型检测
typeof 运算符可以返回被检测的数据类型。它支持两种语法形式:
1.作为运算符: typeof x (常用的写法)
2.函数形式: typeof(x)
有括号和没有括号,得到的结果是一样的,所以我们直接使用运算符的写法。
let num = 10
console.log(typeof num)
let str = 'pink'
console.log(typeof str)
let str1 = '10'
console.log(typeof str1)
let flag = false
console.log(typeof flag)
let un
console.log(typeof (un))
let obj = null
console.log(typeof obj)
let num1 = prompt('请输入第一个数:')
console.log(typeof num1)//string
类型转换
理解弱类型语言的特征,掌握显式类型转换的方法
在 JavaScript 中数据被分成了不同的类型,如数值、字符串、布尔值、undefined,在实际编程的过程中,不同数据类型之间存在着转换的关系。
隐式转换
某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
+号两边只要有一个是字符串,都会把另外一个转成字符串
除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型
任何数据和字符串相加结果都是字符串
console.log(1 + 1)
console.log('pink' + 1)
console.log(2 + 2)
console.log(2 + '2') // 22
console.log(2 - 2)
console.log(2 - '2') // 0
console.log(+12)
console.log(+'123') // 转换为数字型
console.log('1' * 1);
显式转换
编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。
转换为数字型
let str = '123'
console.log(Number(str))
console.log(Number('bozai'))//NaN
// let num = Number(prompt('输入年薪'))
// let num = +prompt('输入年薪')
// console.log(Number(num))
// console.log(num)
console.log(parseInt('12px'))
console.log(parseInt('12.34px'))
console.log(parseInt('12.94px'))
console.log(parseInt('abc12.94px'))
// -------------------
console.log(parseFloat('12px')) // 12
console.log(parseFloat('12.34px')) // 12.34
console.log(parseFloat('12.94px')) // 12.94
console.log(parseFloat('abc12.94px')) // 12.94
转换为字符型
// 1. 把数字型转换为字符串型 变量.toString()
let num = 10;
let str = num.toString();
console.log(str);
console.log(typeof str);
// 2. 我们利用 String(变量)
console.log(String(num));
\