重新巩固JS(一)——JavaScript基本类型
文章目录
- JavaScript基本类型
- 1. 原始类型:
- 1.1 数值—Number
- 1.2 字符串—String
- 1.3 布尔值—Boolean
- 1.4 字符—Symbol(ES6新增)
- 1.5 Undefined
- 1.6 Null
- 2. 对象类型—Object:
- 2.1 重要的特殊对象
- 3 类型识别
重新巩固JS系列,都是比较基础的东西,可以进行查漏补缺,很快看完,这是第一篇。
其他JS重新巩固系列:
- 重新巩固JS(二)——JavaScript操作符与表达式
- 重新巩固JS(三)——JavaScript语句
JavaScript基本类型
在编程领域中,数据类型(data type)用来将变量的值(value)进行分类,这样在对变量的值进行数学、关系、逻辑等运算时就不会产生错误了。例如: 2 * 2
是合法的,2 * John
就不合法了。
JS中的基本类型分为原始类型和对象类型两种。
1. 原始类型:
原始类型(6种): Number、String、Boolean、Symbol、Null、Undefined
。
1.1 数值—Number
- 采用标准:不区分整数和浮点数,所有数值都用浮点数表示,采用IEEE 754标准定义的64位浮点格式。
- 整数:范围是
-2 ^53 ~ 2^53
,有十进制,二进制(binary,以0b
为前缀,之后的值由0~1
组成)、八进制(octal,以0o
为前缀,之后的值由0~7
组成,注:不推荐以0为前缀的表示法)、十六进制(hexadecimal,以0x
为前缀,之后的值由0~9
和a~f
(10~15)组成)表示。例如:
//二进制
0b11 //合法
0b22 //不合法//八进制
0o67 //合法
0o89 //不合法//十六进制
0xAf //合法
0xjk //不合法
- 浮点数:数值中必须包含一个小数点,小数点后至少要有一位数字,浮点数计算可能会有误差,对于极大或极小的数值可以用
e
表示法,例如:
//存在误差
0.1 + 0.2 = 0.30000000000000004//e表示法
3.14e5 //即为314000
- 特殊数值,主要来自:全局直接量(无穷大
Infinity
、非数字NaN
)、Number对象的属性(Number.MAX_VALUE
、Number.MIN_VALUE
等)、Math对象(Math.PI
,Math.E
等)的属性等。
1.2 字符串—String
- 采用标准:用来表示文本,由0个或多个16位Unicode字符组成的字符序列。
- 可以使用单引号或者双引号(效果一样,必须成对出现),在JS代码中经常会出现HTML字符串,由于HTML标签中的属性值推荐的是双引号,所以JS字符串推荐使用单引号,例如:
let imgEl = '<img src="xxxx.jpg" title="my photo">'
- 索引从0开始,长度是字符的个数。
let str = 'Hello World'
str.length // => 11
str[0] // => 'H'
- 字符串不能直接换行,如果想拆分成多行,需要在每行的结尾添加反斜杠
\
,输出的结果还是单行。
// 错误写法
'ab
c'//正确写法
let str = 'multiple\
lines\
end'
str // => 'multiplelinesend'
- 转义字符:反斜杠后加一个字符表示转义字符,比如
\n
表示换行符,如果斜杠后面的字符没有特殊含义,则忽略斜杠。常见转义字符:
字符 | 含义 |
---|---|
\n
|
换行 |
\\
|
斜杠 |
\'
|
单引号,在用单引号表示的字符串中使用 |
\"
|
双引号,在用双引号表示的字符串中使用 |
\xnn
|
十六进制代码表示的一个字符(其中n为0~F)。例如,\x41 表示’A’
|
\unnnn
|
十六进制代码表示的unicode字符(其中n为0~F)。例如,\u03a3 表示希腊字符’∑’
|
- 模板字符串(ES6新增):使用反引号(重音符,
" ` "
),里面的变量使用${}
包裹,可以直接换行。
let name = 'cc'
name // => 'cc'
`Hello, ${name}` //=> 'Hello, cc'
1.3 布尔值—Boolean
用来表示真或假,开或关等含义。
- 只有两种值:
true
和false
,通常用于if/else语句
中,若为true则执行if语句中的逻辑,否则执行else里面的逻辑。
if( status === 'open') {console.log('Door is open');
} else {console.log('Door is closed');
}
- 假值和真值: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'
|
说明:整理自网易公开课。
重新巩固JS(一)——JavaScript基本类型相关推荐
- js php 数据类型判断,【js基础】变量类型判断
类型判断方法比较: 如果需要想详细了解,请看下文: 注:原封不动复制备份,防止删帖 在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, B ...
- 韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...
2011韩顺平轻松搞定网页设计(html+css+js)之 javascript现场授课笔记(完整版) 视频18整和19的前半部分不用看 Javascript的基本介绍 JS是用于WEB开发的脚本语言 ...
- 详解JavaScript变量类型判断及domReady原理 写得很好
原文:详解JavaScript变量类型判断及domReady原理 我们知道,在开发JavaScript时候,经常要判断JavaScript变量类型,此 JavaScript教程 详细介绍JS变量的判断 ...
- JavaScript的类型自动转换高级玩法JSFuck
0 前言 最开始是不小心在微信公众号(程序员大咖)看到一篇JS的高逼格代码,然后通过里面的链接跳转到了JSFuck的wiki,就像顺着迷宫找宝藏的感觉,感叹JS的自动类型转换的牛逼. 1 样例 (!( ...
- JavaScript对象类型Object
前言 系统学习JavaScript,由于有3年的java后端开发经验,并且有2年的JavaScript+Jquery开发经验,所以像编程语言的一些通用知识就直接跳过了,重点关注JavaScript的语 ...
- js基础--javascript基础概念之函数
js基础--javascript基础概念之函数 引用w3c介绍: 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用 ...
- 了不起的Node.js: 将JavaScript进行到底
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 201 ...
- 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)...
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 2 ...
- js 判断是什么类型浏览器
一.js 判断是什么类型浏览器 // firefox if ( window.sidebar && "object" == typeof( window.sideb ...
最新文章
- cocos2d-x温故(三)!
- mybatis学习(13): 连接数据库之前的准备(测试连接)
- WinForm里ListBox实现加入项目,并且排序。
- StringBuffer练习
- php 开发商城 注意,开发PHP商城要注意的一些常见安全问题
- C语言杂记-vector 、 stack and queue
- 库存系统 代码 java_商品库存管理系统java源代码
- Gosn解决在集合中int自动转换为duble类型
- 在WordPress中嵌入YouTube视频的六种不同方式
- DevExpress 皮肤控件 更换皮肤
- 剑指offer:用两个栈实现队列
- python爬斗鱼直播房间名和主播名,Python爬虫获取斗鱼主播信息
- 计算机实战项目 之 含文档+PPT+源码等]精品基于Uniapp实现的美食餐厅订餐点餐APP
- 台湾大学郭彦甫MATLAB课程PPT课件
- 聊城市普通话水平测试软件音频,聊城市普通话水平测试培训-聊城市教师教育网.ppt...
- Python 实现将 Unix 时间戳转化为实际时间
- 手把手教你matlab完成三相永磁同步电机电压饱和函数function实现
- qphotonics激光器qphotonicsSLD
- openlayers入门开发系列之地图工具栏篇
- 艾永亮:这家视频平台,就靠打造超级产品,成为年轻人的最爱
热门文章
- Python有用小工具2-使用cv2.resize批量改变图片尺寸大小
- Android 13 还没来 14 的开发代号就已泄露——Upside Down Cake “翻转蛋糕”
- 游戏类网站怎么选择服务器租用
- 嵌入式裸机之LCD学习笔记
- Android启动界面SplashActivity的实现方法
- 计算机休眠下睡眠的不同点是什么,装机高手告诉你电脑睡眠和休眠的区别是什么....
- 特征提取算法——LBP(Local Binary Pattern)局部二值模式学习笔记
- 使用selenium爬取国家统计局人口普查信息
- 正则之match方法详解
- 《通信工程》专业术语及其缩写大全