wangjie-fourth 的个人博客

记录精彩的程序人生

目录
JS数据类型
/  

JS数据类型

一、JS中的7种数据类型

  • 数字:number
  • 字符串:string
  • 布尔:bool
  • 空:undefined
  • 空:null
  • 对象:object
  • 符号:symbol

注意:数组、函数、日期不是数据类型,它们属于object

数字number

javascript中,数字是由64位浮点数组成的。

1、写法
  • 整数写法:1
  • 小数写法:0.1
  • 科学计数法:1.23e4
  • 八进制写法:0123
  • 十六进制写法:0x3F
  • 二进制写法:0b11
2、特殊值

(1)无穷大

  • Infinity
  • +Infinity
  • -Infinity

(2)正0、负0、0
在大多数情况下,这三个值是相等的。但在除数中,是有区别的。
image.png

(3)无法表示的数字:NaN
NaN,全称是Not a Number,它表示在数学上无法表示的数字。比如说0/0 => NaN0/0在数学上就是没有确定的结果,所以就用NaN表示。

字符串string

javascript的每个字符是俩个字节。

1、写法
  • 单引号:'你好'
  • 双引号:"你好"
  • 反引号:内部可以直接写单引号和双引号
2、多行字符串

javascript支持在字符串里使用回车。比如:

let s = `我要换一行了
好了,已经换一行了
`;
3、相关属性

注意只有对象才有属性,至于为什么字符串有属性?那是因为?
(1)string.length
(2)string[index]
通过下标读取字符,从0开始。

4、base64转码
  • window.btoa(string):将正常字符串转为Base64编码的字符串
  • window.atob(string):将Base64编码的字符串准尉原来的字符串

布尔bool

bool布尔名称的来自乔治布尔

1、条件表达式的值

if表达式中,如果是布尔类型的话就很容易理解。但如果是其他类型的值,应该如何判断呢?比如:

if('1'){
 ...
}

这里的'1'是真还是假?

(1)falsy
falsy代表相当于false但又不是false的值。其中有:undefinednull0Nan'',除了这五个值之外,其他全部当作true处理。

空类型:undefinednull

undefinednull没有本质的区别,在一些小细节上有区别:
1、如果一个变量声明了,但没有赋值,那么默认值就是undefined;比如var a;
2、如果一个函数,没有写return,那么默认return undefined
3、前端程序员习惯上,将非对象的空值写为undefined,把对象的空值写为null

符号:symbol

symbol

二、类型转换

1、numberstring

  • String(n)
  • n + ''

2、stringnumber

  • Number(s)
  • parseInt(s)parseFloat(s)
  • s - 0

3、任意类型转bool

  • Boolean(x)
  • !!x

4、任意类型转string

  • String(x)
  • x.toString()

(1)toString()的坑

// 错误的代码,原因是js认为1.后面应该还是数字
1.toString();
// 正确代码
(1).toString();
1..toString(); // 这里其实是省略写法,含义是1.0.toString()

三、变量声明

javascript有三种变量声明方式:

  • var a = 1
  • let a = 1
  • const a = 1

其中:

  • var是过时、不好用的方式;
  • let是新的、更合理的方式;
  • const是声明时必须赋值,且不能再改得方式;相当于常量;

a=1是一种不正确得声明方式,不要用这种方式。

javascript在声明变量的时候,就会同时定义了类型,而且后期还可以随意变化。

1、var变量提升

网道教程

2、let

letES6的新语法。它有以下特点:

  • 遵循快作用域,即使用范围不能超过{}
  • 不能重复声明;
  • 可以赋值,也可以不赋值
  • 必须先声明再使用,否则报错
  • 全局声明的let变量,不会变成window的属性;但var就有这个缺点;

(1)for循环配置let使用
image.png

image.png

3、const

constlet差不多,只是它在声明时就要赋值,赋值后不能改


参考资料:

评论