js数据类型及转换

一、数据类型

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)

它有两个固定的值truefalse,表示肯定和否定。

4、未定义类型(undefined)

表示只声明不赋值的变量。

        let age
        document.write(age) // undefined

undefined 的应用场景: 用户填写表单时,通过检测某个变量是不是undefined,判断数据是否被传递。

5、null(空类型)

null表示为空。

		let obj = null

null 和 undefined 的区别:

  1. undefined 表示没有赋值;
  2. 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(数据):转换成数字类型,并且会忽略字符串中引号两边的空白符。
    • 其他类型转换成数值类型:
      1. 字符串:" 纯数字 " 转换成对应的数字
      2. " 非纯数字 " 转换成NaN;undefined转换成NaN
      3. 空字符串和空格会转换成0
      4. true转换成1;false转换成0
      5. null转换成0
  • Boolean(数据):转换成布尔值。
    • 其他类型转换成布尔值为false的情况:
      1. 数值:0/NaN
      2. 空字符串
      3. null
      4. undefined

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()是将字符串转换成数值类型。执行的流程是,如果括号里不是字符串,先将其隐式转换成字符串,然后开始找第一个字符,如果是纯数字,继续找下一个,如果不是纯数字,则返回。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值