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 分钟前
flutter封装vlcplayer的控制器
前端·javascript·flutter
山河木马1 小时前
前端学习C++之:.h(.hpp)与.cpp文件
前端·javascript·c++
努力只为躺平1 小时前
一文搞懂 Promise 并发控制:批量执行 vs 最大并发数,实用场景全解析!
前端·javascript
Web小助手1 小时前
大保剑:Promise的有趣体验
javascript
李大玄1 小时前
Google浏览器拓展工具 "GU"->google Utils
前端·javascript·github
爱编程的喵1 小时前
从DOM0到事件委托:揭秘JavaScript事件机制的性能密码
前端·javascript·dom
sunbyte1 小时前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | ContentPlaceholder(背景占位)
前端·javascript·css·vue.js·tailwindcss
谦哥2 小时前
Claude4免费Vibe Coding!目前比较好的Cursor替代方案
前端·javascript·claude
心在飞扬2 小时前
理解JS事件环(Event Loop)
前端·javascript
敲代码的玉米C2 小时前
深入理解链表反转:从基础到进阶的完整指南
javascript