js-权威指南学习笔记2
第三章 类型、值和变量
1、JS的数据类型分为两类:原始类型(基本数据类型/不可变类型)和对象类型(引用数据类型/可变类型)。
JS中的原始类型包括数字/字符串/布尔值,还有两个特殊的:null和undefined。
对象是属性的集合。数组/函数是特殊的对象。
如果函数用来初始化(使用new运算符)一个新建的对象,我们称之为构造函数。每个构造函数定义了一类对象——由构造函数初始化的对象组成的集合。类可以看作是对象类型的子类型。有数组类/函数类/正则类/日期类/错误类。
2、从技术上讲,只有JS对象才能拥有方法。然而,数字/字符串/布尔值也可以拥有自己的方法(基本包装类型?)。在JS中,只有null和undefined无法拥有方法。
3、NaN不和任何值相等。判断变量是不是NaN的办法:x!=x(仅当x为NaN时为true)或者isNaN()函数(为NaN或非数字值时为true)。正零和负零除了作为除数时有差别(正无穷和负无穷),其他时候基本一样。
4、IEEE二进制浮点数有时会带来小的误差,所以在用作比较操作中时要注意。
5、布尔值可以使用toString()方法。
6、
undefined的可以认为是表示系统级的、出乎意料的或类似错误的值的空缺,而null是表示程序级的、正常的或者在意料之中的值的空缺。如果想将它们赋值给变量或属性,或将它们作为参数传入函数,最佳选择是使用null。
7、JS对象是一种复合值:它是属性或已命名值的集合。通过.符号可以引用属性值,当属性值是一个函数的时候,称其为方法。
8、只要引用了字符串s的属性,JS就会将字符串值通过调用new String(s)的方式转换为对象,这个对象继承了字符串的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会销毁。数字和布尔值同理。存取字符串/数字/布尔值的属性时创建的临时对象称作包装对象。
9、通过String()/Number()/Boolean()构造函数可以显式创建包装对象,和原始值相等但不全等。
10、对象和数组的比较并非值的比较,即使包含同样的属性和相同的值,它们也不相等。对象的值都是引用,对象的比较均是引用的比较:当且仅当它们引用同一个基对象时,它们才相等。
11、声明提前:JS函数里声明的所有变量(但不涉及赋值)都被提前至函数体的顶部。
12、通过var声明的变量是不可配置的。
js-权威指南学习笔记2的更多相关文章
- js权威指南---学习笔记02
1.JS只有函数作用域,没有块级作用域这个概念: 它有一个特性——声明提前:在同一个函数中不同位置声明的变量,都被提前在函数开始的时候,执行声明操作:在原先位置执行赋值操作: 2.声明的全局变量,相当 ...
- js权威指南学习笔记(一)类型、值和变量
1.数据类型:原始类型(primitive type) 和对象类型(object type) 原始类型包括数字.字符串和布尔值: 除数字.字符串.布尔值.null(空).undefined(未定义), ...
- js权威指南---学习笔记01
1.当函数赋值给对象的属性时,就变为了方法:2.被零整除不报错,只会返回无穷大(Infinity)或者负无穷大.例外:零除以零等于非数字(NaN).3.NaN与任何值都不相等! 4.Javascrip ...
- js权威指南学习笔记(四)对象
1.创建对象 (1).通过对象直接量的方式创建 说明:对象直接量是由若干名/值对组成的映射表,名/值对中间用冒号分隔,名/值对之间用逗号分隔,整个映射表用花括号括起来. 如: 5 5 ...
- js权威指南学习笔记(三)语句
1.声明语句 如果用var声明的变量没有初始化,那么这个变量的值会被初始化为undefined. 函数声明语句的语法如下: 4 4 1 console.log(func ...
- js权威指南学习笔记(二)表达式与运算符
1.数组初始化表达式 数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充undefined.如: 2 2 1 var arr = [1,,,,,6]; 2 ...
- JavaScript 权威指南-学习笔记(一)
本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! ## JavaScript 权威指南-学 ...
- 《JS权威指南学习总结》
JS权威指南学习总结:http://www.cnblogs.com/ahthw/category/652668.html
- 《JS权威指南学习总结--开始简介》
本书共分成了四大部分: 1.JS语言核心 2.客户端JS 3.JS核心参考 4.客户端JS核心参考 其中 <JS权威指南学习总结--1.1语法核心> 是:第一部分JS语言核心 各章节重点 ...
- HTTP权威指南-学习笔记
目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客 ...
随机推荐
- MYSQL基础知识和操作(二).png
- Windows安装RabbitMQ集群的几个注意点
记录一下RabbitMQ在windows平台下安装的几个注意点- -,好记性不如烂笔头 安装过程与Linux安装一致,教程参照官网集群配置:此处只列举出几个注意点: 1. erlang的版本需要一致, ...
- Position属性四个值:static、fixed、relative、absolute的区别和用法
1.static(静态定位):默认值.没有定位,元素出现在正常的文档流中(如果设置 top, bottom, left, right, z-index这些属性就不起做作了). 2.relative(相 ...
- 商业智能软件对比评测:FineBI和Tableau
FineBI和Tableau是比较好的自助式商业智能软件,功能都很强大,是企业数据可视化不可或缺的利器,但两款产品还是有非常大的区别的,例如Tableau的功能全面且深入,更适合专业的数据分析人员,而 ...
- Hadoop学习日志- install hadoop
资料来源 : http://www.tutorialspoint.com/hadoop/hadoop_enviornment_setup.htm Hadoop 安装 创建新用户 $ su passwo ...
- Java Web之网上购物系统(提交订单、查看我的订单)
作业终于做完了,好开心......虽然这一周经历不是那么顺利,但是觉得还是收获了不少,有过想哭的冲动,代码不会写,事情办不好,各种发愁.空间里发小发了带父母出去游玩的照片,瞬间能量值不知道是被击退的多 ...
- Genymotion报Unable to load virtualbox engine错误
- Spark运行模式与Standalone模式部署
上节中简单的介绍了Spark的一些概念还有Spark生态圈的一些情况,这里主要是介绍Spark运行模式与Spark Standalone模式的部署: Spark运行模式 在Spark中存在着多种运行模 ...
- 理解Docker(7):Docker 存储 - AUFS
(1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 ...
- [Top-Down Approach] Chatper 3 Notes
这里留下空白,提醒自己,第一章第二章尚待整理回顾. 此处缺了3.6/3.7两节拥塞控制的内容