一、数据类型
js是弱数字类型,需要赋值之后才能确定类型。
js数据类型整体分为两大类:
- 基本数据类型
umber、string、boolean、undefined、null - 引用数据类型
object、function、array
1、数字类型(number)
可以是整数、小数、正数、负数。
let age
age = 18
let name = Angela,sex = w
2、字符串类型(string)
通过单引号('')、双引号("")或反引号(`)包裹的数据都叫字符串,单引号和双引号没有本质上的区别,js内推荐使用单引号 。如有需要外单内双。
实例:
let fruit = prompt('请输入您喜欢的水果:')
console.log('"Angela"喜欢吃' + fruit)
模板字符串
作用: 拼接字符串和变量
符号: `...${...}, ...${...}...`,内容拼接变量时,用${}包住变量
console.log(`我的名字是${uname},
今年${age-2}岁。`)
反引号可以换行输出。
3、布尔类型(boolean)
它有两个固定的值true和false,表示肯定和否定。
4、未定义类型(undefined)
表示只声明不赋值的变量。
let age
document.write(age) // undefined
undefined 的应用场景: 用户填写表单时,通过检测某个变量是不是undefined,判断数据是否被传递。
5、null(空类型)
null表示为空。
let obj = null
null 和 undefined 的区别:
undefined表示没有赋值;null表示赋值了,但是内容为空。
null 开发的应用场景: 如果一个变量里面确定一个对象,如果还没准备好对象,可以先放个null。
二、控制台输出语句和检测数据类型
1、通过控制台输出语句颜色判断
- 黑色
string - 蓝色
number
2、通过 typeof 检测数据类型
console.log(typeof 123) // number
console.log(typeof '123') // string
console.log(typeof true) // boolean
console.log(typeof undefined) // undefined
console.log(typeof null) // object
实例:
let num = 10
document.write(typeof num + '11') // number11
document.write(typeof (num + '11')) // string
document.write(typeof (num + +'11')) // number
typeof 的优先级大于 + 。
3、通过 instanceof 检测数据类型
var obj = {};
var arr = [];
var myFunction = function(){};
console.log(obj instanceof Object); //true
console.log(arr instanceof Array); //true
console.log(fn instanceof Function); //true
// 数组和函数也是特殊的对象
console.log(arr instanceof Object); //true
console.log(fn instanceof Object); //true
三、类型转换
很多情况下,如表单、prompt获取过来的数据默认是字符串类型的,不能直接简单的进行加法运算。
1、隐式转换
某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
ToString()给程序员使用的是变量.toString(进制)ToNumber()不能使用ToBoolean()不能使用
使用+的规则:
+号两边只要有一个是字符串,都会把另一个转换成字符串;如果两边没有字符串,会转换成Number类型;除了+以外的算术运算符,比如 - * / 等都会把数据转换成数字类型;+作为正号解析可以转换成Number类型。
let num = +prompt('请输入数字:')
2、显式转换
隐式转换基于经验,显式转换较为明确。
String(数据):括号的表达式返回字符串类型。Number(数据):转换成数字类型,并且会忽略字符串中引号两边的空白符。- 其他类型转换成数值类型:
- 字符串:" 纯数字 " 转换成对应的数字
- " 非纯数字 " 转换成NaN;undefined转换成NaN
- 空字符串和空格会转换成0
- true转换成1;false转换成0
- null转换成0
- 其他类型转换成数值类型:
Boolean(数据):转换成布尔值。- 其他类型转换成布尔值为false的情况:
- 数值:0/NaN
- 空字符串
- null
- undefined
- 其他类型转换成布尔值为false的情况:
3、其他类型转换为数字型
Number(数据):转换成数字类型,如果字符串里面有非数字型,转换结果为NaN。parseInt(数据):只保留整数,不进行四舍五入。将字符串转换成数值类型。parseFloat(数据):可以保留小数。
实例:
console.log(Number('10')) // 10
console.log(parseInt('10.999')) // 10
console.log(parseFloat('10.99')) // 10.99
console.log(+'10.99') // 推荐使用
console.log(Number('100px')) // NaN
console.log(parseInt('100px')) // 100
console.log(parseInt('px100px')) // NaN
number()只能放纯数字,parseInt()和parseFloat()里面有数字+字母的组合,可以用于过滤单位。
parseInt()和parseFloat()是将字符串转换成数值类型。执行的流程是,如果括号里不是字符串,先将其隐式转换成字符串,然后开始找第一个字符,如果是纯数字,继续找下一个,如果不是纯数字,则返回。
7061

被折叠的 条评论
为什么被折叠?



