美文网首页
js高级程序设计,总结:

js高级程序设计,总结:

作者: cs0710 | 来源:发表于2017-07-05 23:32 被阅读11次
  前两天看了js高级编程的前两章,这两章时一些叙述性的东西,大部分是介绍了js的发展历史和与es5之前的一些差异。今天看了第三章,这章讲述了基础的知识点。

1.Number()和parseInt()、parseFloat()之间的区别:
(1)Number()适用于任何的数据类型的转换,ParseInt和ParseFloat只是适用于将字符串转换为数值
(2)Number()可以将空字符串转换为0, 而后者是以读取到的第一个数字字符为标准,所以它在对空字符继续进行转换的时候,由于一直没有读取到数值字符,所以回返回NaN
(3)Number()只能识别十六进制的数值,对八进制的数值不会识别,它会直接忽略前导0,转换为十进制。后者可以通过再传递一个参数(基数)会对八进制和十六进制正常转换。 如:Number(’0Xaf’)和parseInt(‘0Xaf’, 16)
(4)parseFloat()会忽略前导0,只能识别第一个小数点,遇到第二个就停止解析,但会返回之前解析的数值。对十六进制的字符串进行解析的时候,直接返回的是0,这是和parseInt()的不同之处。
2.String()和toString()方法的区别:
String可以将任何类型的数值转换为字符串,后者对于大部分的值可以转换为字符串,但对null和undefined不行,因为这两个数值没有toString()方法,只能进行强制转换
3.Object类型
(1)可以通过new进行创建,对象中常用的属性和方法有这几个:Construct()(这里存放的是创建对象的函数)、hasOwnProperty()(里面的参数必须是字符串,可以判断一个对象实例中是否有这个属性)、isPrototypeOf(obj)(判断传入的对象是否是另一个对象的原型),这里在属性和方法在原型的应用中会见到。
(2)对象有个valueOf()方法,第一次见到,var o = {valueOf: function() {return -1;}} 这样o的值就是-1,这里的valueOf会返回对象的字符串、布尔值、数值的表示
4.逻辑与(&&)和逻辑或(||)
(1)逻辑与和逻辑或都属于短路操作,即有一个值为符合条件的话就不会再去求职第二个值,这在平常的代码中经常看到,尤其是逻辑或操作。
(2)逻辑与就是只要其中一个操作数是NaN、null、undefined那么返回的结果就是这些数,如果第一个操作数为对象,则返回第二个操作数。如果第二个操作数为对象,则在第一个操作数为true的情况下,返回第二个操作数。如果两个操作数都是对象,则返回第二个操作数。
(3)逻辑或如果两个操作数都是NaN、null、undefined那么返回的结果就是这些数。如果第一个操作数为对象,则返回第一个操作数。如果第二个操作数为对象,则在第一个操作数为false的情况下,返回第二个操作数。如果两个操作数都为对象,则返回第一个操作数。

  1. ==和===
    
    由于undefined派生于null,所以他们只是类似的数值,并不是同一种类型的值,null是一个空对象,undefined是应该有值但是未定义。所以null == undefined(true),
    null === undefined(false)
    6.while循环和for循环的关系
    以前没有深入了解过这种关系,今天看到了感觉它们都是扣在一起的。如果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语句
    这是进行循环对象属性的循环语句,在使用前要先确定该对象的值不是null或者undefined否则改循环代码不会执行,也不抛出错误。在循环过程中,属性的先后顺序可以不同,这是因浏览器的差异导致的。
    以上是今天看书后的总结,继续加油!

相关文章

  • JS转义字符

    摘自《JS高级程序设计》

  • JS笔记001(JS的组成、数据类型)

    内容归纳总结自《JavaScript高级程序设计》 1. JS的组成 1.ECMAScript核心 解释器2.D...

  • js高级程序设计,总结:

    1.Number()和parseInt()、parseFloat()之间的区别:(1)Number()适用于任何的...

  • DOM

    以下内容总结自《js高级程序设计 第三版》 今天来说说JS中的DOM以及DOM操作。 DOM是什么,做了什么? D...

  • 前端知识体系

    1.JS基础 5 2.JS高级 5JS高级程序设计,各种api的应用,es6新增api的运用 3.CSS...

  • 函数表达式

    以下内容总结自《JS高级程序设计》第三版 什么是函数表达式? 函数表达式,是JS中定义函数的一种方式。在JS中,共...

  • Books

    一 JS书籍推荐JS高级程序设计 (望远镜)JS工作原理犀牛书二、行业书籍《人月神话》

  • 正则表达式

    JS高级技巧 本篇是看的《JS高级程序设计》第23章《高级技巧》做的读书分享。本篇按照书里的思路根据自己的理解和经...

  • js高级程序设计(日期),总结:

    1.Date时间类型 Date时间类型可以通过构造函数Date实现对时间的操作,如:获取时间戳等。今天看了一下明白...

  • javascript对象继承详解 及react的对象继承原理

    总结《javascript高级程序设计》第六章有关于对象继承的内容。看这篇文章之前看js对象创建详解。对于OO语言...

网友评论

      本文标题:js高级程序设计,总结:

      本文链接:https://www.haomeiwen.com/subject/csechxtx.html