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

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

内容简介:重新巩固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'

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


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

查看所有标签

猜你喜欢:

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

Java Concurrency in Practice

Java Concurrency in Practice

Brian Goetz、Tim Peierls、Joshua Bloch、Joseph Bowbeer、David Holmes、Doug Lea / Addison-Wesley Professional / 2006-5-19 / USD 59.99

This book covers: Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Pe......一起来看看 《Java Concurrency in Practice》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具