JS 数据类型笔记

数据类型

复习 target

  • 能说出6种简单数据类型
  • 能使用 typeof 获取变量的类型
  • 能说出 1-2 种转换为数值型的方法
  • 能说出 1-2 种转换为字符型的方法
  • 能说出什么是隐式转换

目录知识点

  • 数据类型简介
  • 简单和复杂数据类型
  • 获取变量数据类型
  • 数据类型转换

1、数据类型简介

JS 是一种弱类型、动态语言,它不用提前声明变量的类型。

2、数据类型

JS 有6种简单数据类型,1种复杂数据类型。

简单数据类型如下:

 ES6 新增了一种数据类型——Symbol(符号)。

复杂数据类型只有一种:Object(对象)。

数字型数据 Number

1、八进制,在数字前面加 0 表示八进制。十六进制 取值范围:0~9 A~F; 在数字前面加 0x (区分大小写)表示十六进制

let num1 = 070 // 八进制的56
let num2 = 079 // 无效的八进制,当成十进制79处理
let num3 = 0xA // 十六进制10

2、浮点值。浮点值在算术计算中远不如整数精确,故永远不要测试某个特定的浮点值。

var a = 0.1, b = 0.2;
// 0.1 + 0.2 得到的不是0.3,而是 0.300 000 000 000 000 04
if( a + b == 0.3){  //  永远不要这么写!
    console.log("You got 0.3.");
}

3、三个特殊值 Infinity、-Infinity、NaN(not a number缩写)

4、最大值:Number.MAX_VALUE、Number.MIN_VALUE

isNaN() 方法用来判断非数字。它可以接收任何数据类型。把一个值传给 isNaN() 后,它会尝试转换为数值,如果成功转换成数值则返回 false,如果不能转换为数值则返回 true。

字符串类型 String

加了单引号、或者双引号的都称为字符串类型。推荐JS中使用单引号。

1、字符串中的引号嵌套:外单内双,外双内单。

例如: var str = ' 我是一个 "高富帅" 程序员 '

2、字符串转义符

转义符都是 \ 开头的,且转义字符都要写到引号里。

3、字符串长度

由字符串的 length 属性来获得字符串长度。

4、字符串拼接

多个字符串之间可以使用 + 进行拼接,其拼接方式为 字符串 + 任何类型 = 拼接之后的新字符串

拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串

案例:显示用户年龄
var age = prompt('请输入您的年龄');
var str = '您今年已经' + age + '岁了';
alert(str);

 5、模板字面量

ES6新增了模板字面量。与使用单引号或双引号不同,模板字面量保留内部的空格和换行字符,可以跨行定义字符串。

示例:
let str1 = ' first line\n second line ' // 单引号定义字符串
let str2 = ` first line
second line`	//模板字面量定义字符串,会保持内部的空格和换行符

布尔型数据 Boolean

布尔型数据有两个字面值:true 和 false。

布尔型数据和数字型数据运算的时候,true的值为1,false的值为0。但平常时布尔值不同于数值。

undefined 和 null 类型

undefined 类型只有一个值,就是特殊值 undefined。当使用 var 或 let 声明变量但没有初始化时,就相当于给变量赋予了undefined的值。

null 类型只有一个值,即特殊值 null。逻辑上讲,null 值表示一个空对象指针,这也是 typeof 传一个 null 会返回“object” 的原因。

任何时候,只要变量将来要保存一个对象值,而当时有没有那个变量,就要用 null 来填充该变量。这样就可以保持 null 是空对象指针的语义,并进一步将其与 undefined 区分。

3、获取变量数据类型

3.1 typeof

type of 可用来获取检测变量的数据类型

3.2 字面量

字面量是在源代码中一个固定值的表示法,通俗来说,就是字面量表示如何表达这个值。

  • 数字字面量:8.9.10
  • 字符串字面量:‘前端开发努力学习’
  • 布尔字面量:true,false

4.数据类型转换

4.1 转换为字符串

注意 toString() 和 String() 使用语法不同。

toString() 适用于大部分值,但不适用于 null 和 undefined。如果不能确定一个值是不是 null 和 undefined,可以使用 String()方法。

三种转换方式,通常更喜欢用第三种 “加号凭借字符串”转换方式,这一种方式也被称为隐式转换。

4.2 转换为数字型 (重点)

注意 parseInt 和 parseFloat 单词的大小写

Number() 可以用于任何数据类型。parseInt 和 parseFloat 则主要用于字符串转换为数值。

隐式转换是我们在进行算术运算的时候,JS自动转换了数据类型。

let num1 = Number("Hello world!");    // NaN
let num2 = Number("");                // 0
let num3 = Number("000011");          // 11
let num4 = Number("true");            // 1

let num5 = parseInt('3.14');          // 3
let num6 = parseInt('3.94');          // 3
let num7 = parseInt('120px');         // 120
let num8 = parseInt('rem120px');      // 3

let num9 = parseInt('0xAF');          // 170,十六进制
let num9 = parseInt('AF',16);         // 170

//利用算术运算 - * / 来隐式转换
console.log('12'- 0);         // 12
console.log('123'- '120');    // 3
console.log('123' * 1);       // 123
//注意如果是 + 则不行

4.3 转换为布尔类型

代表空、否定的值会被转换为false,如 ' ' 、0、NaN、null、undefined

其余值都会被转换为true。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值