JS数据类型

数据类型

数字与字符串

区别:

  1. 功能:
  • 数字可以运算,但是字符串不可
  1. JS中储存形式
  • 数字:64位浮点数形式储存
  • 字符串:UTF8形式储存,用数字编号所有符号
    UTF-8 是 Unicode 一种存储规则,也叫字符编码规则。

JS中数据类型 (四基两空一对象)

Tips:不是数据类型:数组,函数,日期(这三个都是对象)

布尔(bool)

只有两个值(大小写无所谓)

  • true
  • false

falsy值

这不是false的值但是相当于false

  1. NaN(Not a Number,意思是不知道什么的数字)
  2. ''(空字符串,没有空格)
  3. null
  4. undefined
  5. 0
    除此之外还有一个false,其他都是true值
    eg.
  • if(1){} =>if(true){}
  • if(0){} =>if(false){}
  • if(''){} =>if(false){}
  • if('0'){} =>if(true){}

可得到bool值

  • 否定运算
    if(!1)
  • 相等运算
    if(1=2)
  • 比较运算
    if(1>2)

数字(number)

JS 的 number 全都是以小数(浮点数)的形式存储的,没有单独的整数

特殊值

  • 0/+0/-0
    值相同
    区别:1/0,1/+0都是正无穷
    1/-0为负无穷。

  • NaN
    无法表达的数字
    NaN不等于NaN,因为他们只是代表无法表示的数字,但是他们不一定相同。
    eg. 以前无法理解负数的时候,-1就是NaN,同时-2也是。所以不一定相同

  • infinity/-infinity
    正负无穷

范围

  • 最大的二进制数字:指数最大且有效数字最大
  • 最小二进制数字: 指数往负方向最大,且有效数字为1
  • 若有效数字多于许可范围,则多出来的有效数字变成0
  • 十进制最多是15位有效数字,若有16位有效数字开头<90也可存

字符串(string)

写法

''//单引号
""//双引号
``//反引号

it`s ok是不对的,因为第一个'和it's中的'会组合成字符串,也就是得到'it'和 s ok的指令
正确写法:

''it/'s ok' // /'是转义,只有一个字符串的长度
`it's ok`// 用`来作为字符串的引用

转义的写法

\' //'
\\  // /
\n //换行
\r //回车
\t //Tab制表符
\uFF //对应的Unicode字符

转义的长度中/是不占字符长度的
eg.\n\t\r长度为3
Tips:

  • 字符串中要打回车,用反引号可以直接打,其他要转义
  • 字符串属性
  1. 长度
  2. 下标
    eg.
let s ='abcd'
s[0] ='a'
s[4]=false// 由于是从0开始,所以'd'是s[3]

符号(symbol)

不讲

空(null)

空(undefined)

两个空本质无差别
区别:

  1. 若一个变量声明无赋值为undefined(默认),一个函数没写return为null
  2. 习惯:对象中的空为null,非对象中的空为undefined

对象(object)

对象声明

  1. var(过时了不用了)
  2. let
  • 遵循块作用域,使用范围不超过{}
  • 不可重复声明
  • 可赋值也可不赋值
  • 先声明后使用
  • 全局声明let变量不会变成window属性,但是var会
    eg.
{
let a = 1
}
console.log(a)

报错,a 没有定义,因为 let a 的作用域在 { } 内部

{
console.log(a)
let a = 1
}

报错,因为不能在声明 let a 之前使用 a

  1. const
  • 遵循块作用域,使用范围不超过{}
  • 不可重复声明
  • 一定要赋值,有且仅有一次赋值
  • 先声明后使用
  • 全局声明let变量不会变成window属性,但是var会

Tips:
变量声明时候指定值的同时也要指定对象
eg.

let a=1// 值为1,类型为number

数据类型转换

  1. 数字=>字符串
let n=1
//4种方法
String(n)
 n + ''
 '' + n
n.tostring

Tips!!

  • 1.tostring是不对的,因为1. 后面计算器会默认要加小数,所以要1..tostring/(1).tostring
  1. 字符串=>数字
let s ='123'
//2种方法
s-0
ParseInt(s)//让其变成整数
  1. 任何变成bool
let x
//2种方法
boolear(x)
!!x

js学习资料

JS秘密花园,JS中奇怪的点

你可能感兴趣的:(JS数据类型)