JS 中的7种数据类型
数组、函数、日期都属于 object 对象
false
就是相当于 false 但又不是 false 的值,分别是:
''
和' '
不是一个玩意,请保持严谨
数字 number
-
写法:
整数写法 1
- 小数写法 0.1
- 科学计数法 1.23e4
- 八进制写法 (用得少)
- 0123 或 00123 或0o123
-
特殊值
1. 正0 和 负0
-
2. 无穷大
-
3. 无法表示的数字
NaN(Not a Number)
字符串 string
每个字符两个字节(阉割版 UTF8)
写法:
- 单引号 ‘你好’
- 双引号 “你好”
- 反引号
你好
引号不属于字符串的一部分,就像书名号不属于书名的一部分一样。 如果要在单引号里包含单引号怎么作?
- 转义
- 错误写法
'it's ok'
JS 引擎会认为it's
就结束了
- 正确写法
'it\'s ok'
// 这就是转义"it's ok"
it's ok
- 错误写法
- 转义
转义(背)
- 用另一种写法表示你想要的东西
|
\\'
| 表示 ‘ | | —- | —- | |\\"
| 表示 “ | |\\n
| 表示换行 | |\\r
| 表示回车 | |\\t
| 表示 tab 制表符 | |\\\\
| 表示 \ | |\\uFFFF
| 表示对应的 Unicode 字符 | |\\xFF
| 表示前 256 个 Unicode 字符 |
字符串的长度
string.length
string[index]
let s = 'hello';
s[0] // "h"
注意 index 从 0 开始
-
注意 index 到 length
let s = 'hello';
s[4] // '0'
s[5] // undefined,居然不报错
base64 转码
window.btoa 编码
-
window.atob 反编码
-
一般用来隐藏招聘启事里的简历
布尔 Boolean
真或假
只有两个值
-
下列运算符会得到 bool 值
否定运算
-
相等运算
1 === 2、1 != 2、3 === 4、3 !== 4
比较运算
-
undefined 和 null 两种空类型
区别
没有本质区别
undefined
是默认的空-
细节一
如果一个变量声明了,但没有赋值,那么默认值就是
undefined
,而不是null
。细节二
如果一个函数,没有写
return
,那么默认return undefined
,而不是null
。细节三
前端程序员习惯上,把非对象的空值写为
undefined
,把对象的空值写为null
。- 但仅仅是习惯上而已。
symbool 符号
- 不怎么常用的数据类型
- 相关文章
变量声明
|三种声明方式
|区别
| | —- | —- | |var a = 1
|var
是过时的、不好用的方式。 | |let a = 1
|let
是新的,更合理的方式。 | |const a = 1
|const
是声明时必须赋值,且不能再改的方式。 | |a = 1
| 这种是赋值,不是声明 |
var 声明(现在不用)
var 变量提升(网道教程)
let 声明
规则:
- 遵循块作用域,即 使用范围不能超出
{ }
- 同一作用域不能重复申明
- 可以赋值,也可以不赋值
- 必须先声明再使用,否则报错
- 全局声明的
let
变量,不会变成window
的属性。 for
循环配合let
有奇效。
const 声明
规则:
- 跟
let
几乎一样 - 只有一条不一样:声明时就要赋值,赋值后不能改。有且仅有一次赋值。
变量声明指定值,同时也指定了类型,但是值和类型都可以随意变化。
// 指定值,同时指定了类型
var a = 1
// 值和类型都可以随意变化
a = 2
a = '字符串'
name
和 'name'
的区别
**name**
是变量,值和类型皆可变**'name'**
是字符串常量不可变
- 常量就是不变量
- ‘name’ 只能是 ‘name’,不能是其他值。
类型转换
number => string
String(n)
- 大写的String 专门用来把不是String 的东西变成 String。
**n + ''**
常用写法var n = 1 // undefined
String(n) // '1'
n + '' // '1'
string => number
Number(s)
parseInt(s)
会把任何东西变成整数parseFloat(s)
**s - 0**
常用写法- 减法会把数字转成字符串再减0
+s
- 正号会把后面的东西尝试变成Number ```javascript var s = ‘123’ // undefined Number(s) // 123 s - 0 // 123
Boolean(x)
**!!x **
常用写法String(x)
x.toSring()