js高级程序设计(1/2章节)

复制代码
 前两天看了js高级编程的前两章,这两章是一些叙述性的东西,大部分是介绍了js的发展历史和与es5之前的一些差异。今天看了第三章,这章讲述了基础的知识点。

1.Number()和parseInt()、parseFloat()之间的区别:

javascript 复制代码
(1)Number()适用于任何的数据类型的转换,ParseInt和ParseFloat只是适用于将字符串转换为数值
(2)Number()可以将空字符串转换为0, 而后者是以读取到的第一个数字字符为标准,所以它在对空字符继续进行转换的时候,由于一直没有读取到数值字符,所以回返回NaN
(3)Number()只能识别十六进制的数值,对八进制的数值不会识别,它会直接忽略前导0,转换为十进制。后者可以通过再传递一个参数(基数)会对八进制和十六进制正常转换。                  如:Number('0Xaf')和parseInt('0Xaf', 16)
(4)parseFloat()会忽略前导0,只能识别第一个小数点,遇到第二个就停止解析,但会返回之前解析的数值。对十六进制的字符串进行解析的时候,直接返回的是0,这是和parseInt()的不同之处。

2.String()和toString()方法的区别:

javascript 复制代码
String可以将任何类型的数值转换为字符串,后者对于大部分的值可以转换为字符串,但对null和undefined不行,因为这两个数值没有toString()方法,只能进行强制转换

3.Object类型

scss 复制代码
 (1)可以通过new进行创建,对象中常用的属性和方法有这几个:Construct()(这里存放的是创建对象的函数)、hasOwnProperty()(里面的参数必须是字符串,可以判断一个对象实例中是否有这个属性)、isPrototypeOf(obj)(判断传入的对象是否是另一个对象的原型),这里在属性和方法在原型的应用中会见到。
 (2)对象有个valueOf()方法,第一次见到,var o = {valueOf: function() {return -1;}} 这样o的值就是-1,这里的valueOf会返回对象的字符串、布尔值、数值的表示

4.逻辑与和逻辑或

javascript 复制代码
(1)逻辑与和逻辑或都属于短路操作,即有一个值为符合条件的话就不会再去求职第二个值,这在平常的代码中经常看到,尤其是逻辑或操作。
(2)逻辑与就是只要其中一个操作数是NaN、null、undefined那么返回的结果就是这些数,如果第一个操作数为对象,则返回第二个操作数。如果第二个操作数为对象,则在第一个操作数为true的情况下,返回第二个操作数。如果两个操作数都是对象,则返回第二个操作数。
(3)逻辑或如果两个操作数都是NaN、null、undefined那么返回的结果就是这些数。如果第一个操作数为对象,则返回第一个操作数。如果第二个操作数为对象,则在第一个操作数为false的情况下,返回第二个操作数。如果两个操作数都为对象,则返回第一个操作数。

5.==和===

javascript 复制代码
 由于undefined派生于null,所以他们只是类似的数值,并不是同一种类型的值,null是一个空对象,undefined是应该有值但是未定义。所以null == undefined(true),null === undefined(false)

6.while循环和for循环的关系

css 复制代码
 以前没有深入了解过这种关系,今天看到了感觉它们都是扣在一起的。如果while循环不能实现,那么for循环也不能实现,可以这样理解,for循环实在while循环的基础上进行演化的,其灵活性更加强大。比如:for(var i = 0; i < 10; i++) {}在代码块外面也可以访问到i,猛然一看给人一种错觉,但是因为他是while的转换,可以转换为这样,var i = 0;while (i <  10) {i++;}这样也可以在外面访问到i。所以再去理解for外面访问i的问题应该就不难了。
 

7.for...in语句

javascript 复制代码
 这是进行循环对象属性的循环语句,在使用前要先确定该对象的值不是null或者undefined否则改循环代码不会执行,也不抛出错误。在循环过程中,属性的先后顺序可以不同,这是因浏览器的差异导致的。
 以上是今天看书后的总结,继续加油!
相关推荐
莎士比亚的文学花园4 分钟前
Linux驱动开发(3)——设备树
开发语言·javascript·ecmascript
01漫游者1 小时前
JavaScript函数与对象增强知识
开发语言·javascript·ecmascript
threelab3 小时前
Three.js 代码云效果 | 三维可视化 / AI 提示词
开发语言·javascript·人工智能
yqcoder4 小时前
JavaScript 柯里化:把“大餐”拆成“小炒”的艺术
开发语言·javascript·ecmascript
每天吃饭的羊4 小时前
JSZip的使用
开发语言·javascript
前端老石人5 小时前
前端开发中的 URL 完全指南
开发语言·前端·javascript·css·html
不可能的是5 小时前
从 /simplify 指令深挖 Claude Code 多 Agent 协同机制
javascript
Rkgua6 小时前
事件流模型是什么和DOM事件模型等关系
javascript
W.A委员会6 小时前
多行溢出在末尾添加省略号
开发语言·javascript·css
拉里呱唧7 小时前
一个像在使用PPT的在线 HTML 编辑器:HeyHTML
javascript·交互·html5