重新巩固JS(一)——JavaScript基本类型

栏目: JavaScript · 发布时间: 5年前

内容简介:重新巩固JS系列,都是比较基础的东西,可以进行查漏补缺,很快看完,这是第一篇。其他JS重新巩固系列:在编程领域中,数据类型(data type)用来将变量的值(value)进行分类,这样在对变量的值进行数学、关系、逻辑等运算时就不会产生错误了。例如:

重新巩固JS系列,都是比较基础的东西,可以进行查漏补缺,很快看完,这是第一篇。

其他JS重新巩固系列:

JavaScript基本类型

在编程领域中,数据类型(data type)用来将变量的值(value)进行分类,这样在对变量的值进行数学、关系、逻辑等运算时就不会产生错误了。例如: 2 * 2 是合法的, 2 * John 就不合法了。

JS中的基本类型分为 原始类型对象类型两种

1. 原始类型:

原始类型(6种): Number、String、Boolean、Symbol、Null、Undefined

1.1 数值—Number

  1. 采用标准 :不区分整数和浮点数,所有数值都用浮点数表示,采用IEEE 754标准定义的64位浮点格式。
  2. 整数 :范围是 -2 ^53 ~ 2^53 ,有十进制,二进制(binary,以 0b 为前缀,之后的值由 0~1 组成)、八进制(octal,以 0o 为前缀,之后的值由 0~7 组成,注:不推荐以0为前缀的表示法)、十六进制(hexadecimal,以 0x 为前缀,之后的值由 0~9a~f (10~15)组成)表示。例如:
//二进制
0b11 //合法
0b22 //不合法

//八进制
0o67 //合法
0o89 //不合法

//十六进制
0xAf //合法
0xjk //不合法
复制代码
  1. 浮点数 :数值中必须包含一个小数点,小数点后至少要有一位数字,浮点数计算可能会有误差,对于极大或极小的数值可以用 e 表示法,例如:
//存在误差
0.1 + 0.2 = 0.30000000000000004

//e表示法
3.14e5 //即为314000
复制代码
  1. 特殊数值 ,主要来自:全局直接量(无穷大 Infinity 、非数字 NaN )、Number对象的属性( Number.MAX_VALUENumber.MIN_VALUE 等)、Math对象( Math.PIMath.E 等)的属性等。

1.2 字符串—String

  1. 采用标准 :用来表示文本,由0个或多个16位Unicode字符组成的字符序列。
  2. 可以使用单引号或者双引号 (效果一样,必须成对出现),在JS代码中经常会出现HTML字符串,由于HTML标签中的属性值推荐的是双引号,所以JS字符串 推荐使用单引号 ,例如:
let imgEl = '<img src="xxxx.jpg" title="my photo">'
复制代码
  1. 索引从0开始,长度是字符的个数
let str = 'Hello World'
str.length // => 11
str[0] // => 'H'
复制代码
  1. 字符串不能直接换行 ,如果想拆分成多行,需要在每行的结尾添加反斜杠 \ ,输出的结果还是单行。
// 错误写法
'ab
c'

//正确写法
let str = 'multiple\
lines\
end'
str // => 'multiplelinesend'
复制代码
  1. 转义字符 :反斜杠后加一个字符表示转义字符,比如 \n 表示换行符,如果斜杠后面的字符没有特殊含义,则忽略斜杠。常见转义字符:
字符 含义
\n 换行
\\ 斜杠
\' 单引号,在用单引号表示的字符串中使用
\" 双引号,在用双引号表示的字符串中使用
\xnn 十六进制代码表示的一个字符(其中n为0~F)。例如, \x41 表示'A'
\unnnn 十六进制代码表示的unicode字符(其中n为0~F)。例如, \u03a3 表示希腊字符'∑'
  1. 模板字符串(ES6新增) :使用反引号(重音符, " ` " ),里面的变量使用 ${} 包裹,可以直接换行。
let name = 'cc'
name // => 'cc'
`Hello, ${name}` //=> 'Hello, cc' 
复制代码

1.3 布尔值—Boolean

用来表示真或假,开或关等含义。

  1. 只有两种值truefalse ,通常用于 if/else语句 中,若为true则执行if语句中的逻辑,否则执行else里面的逻辑。
if( status === 'open') {
    console.log('Door is open');
} else {
    console.log('Door is closed');
}
复制代码
  1. 假值和真值 :JS中任意值都可以转换为布尔值。一共6个值( undefined、null、0、-0、NaN、"" )会被转换成false,其他值都是true 。

1.4 字符—Symbol(ES6新增)

可用作对象的非字符串属性,它是唯一且不可变的,例如:

let uniqueName = Symbol(); 
let person = {}; 
person[uniqueName] = 'cc'; 
console.log(person[uniqueName]); // => cc
复制代码

(备注:后期详细讲解)

1.5 Undefined

表示未定义或不存在,只有一个值 undefined

let abc;
console.log(abc); // => undefined
console.log(abcd); //报错,注意未赋值和未声明的区别
let obj = {};
console.log(obj.name) // => undefined
复制代码

1.6 Null

表示空值,Null类型只有一个值 null 。如果定义一个变量来表示一个对象的话,声明时推荐将其设置为null。

let obj = null;
obj = { name: 'cc'}
复制代码

2. 对象类型—Object:

除了原始类型的值以外,其他都是对象。对象是键值对的集合,值可以是原始值,也可以是对象。例如:

//author对象:有name属性,值为'cc',还有age属性,值为100
let author = {
    name: 'CC',
    age: 100
}
复制代码

2.1 重要的特殊对象

特殊对象: 函数 Function数组 Array日期 Date正则 RegExp全局 Global错误 Error 。 (备注:后期单独详细讲解)

3 类型识别

可以使用typeof操作符来检测变量的数据类型,它返回的值为一个小写的字符串。

变量abc的取值 typeof abc 的结果
let abc; 'undefined'
let abc = true; 'boolean'
let abc = 123; 'number'
let abc = 'abc'; 'string'
let abc = function () {}; 'function'
let abc = {}; //[]、null 'object'
let abc = Symbol(); 'symbol'

说明:整理自网易公开课。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

移动风暴

移动风暴

[美]弗雷德·沃格尔斯坦 / 朱邦芊 / 中信出版社 / 2014-1-1 / 39

也许,除了伟大的乔布斯,每一位奋力改变世界的硅谷英雄,都值得我们肃然起敬。苹果与谷歌十年博弈,关于这场移动平台战争的报道早已铺天盖地,而这是第一次,我们能听到幕后工程师的真实声音。两大科技巨人用智能手机和平板电脑颠覆了电脑产业。它们位处变革的中心,凭借各自的经营哲学、魅力领袖和商业敏感度,把竞争变成了残酷对决。商业记者沃格尔斯坦报道这场对抗已逾十载,在《移动风暴》中,他带领我们来到一间间办公室和会......一起来看看 《移动风暴》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具