美文网首页
课程《重学前端》的一些记录

课程《重学前端》的一些记录

作者: 明灭_ | 来源:发表于2019-07-07 16:47 被阅读0次

模块一:JavaScript


1. 为何有的编程规范要求用viod 0代替undefined

  • 因为js中,undefined不是一个关键字而是一个变量(这也是js公认的bug),为了避免undefined的值被篡改,建议使用void 0来代替undefinedvoid后跟任何值结果都是undefined
  • 在全局环境中,undefined不能被赋值;而局部环境中可以
  • 举个例子:
(function(){
  var a;
  var undefined = 3;
  if(a === undefined) {
    console.log('a===undefined');
  } 
  if(a !== undefined) {
    console.log('a!==undefined');
  }
})()

结果:a!==undefined

2. 字符串是否有最大长度?

String 用于表示文本数据。String有最大长度是2^53 - 1,这在一般开发中都是够用的,但是有趣的是,这个所谓最大长度,并不完全是你理解中的字符数。因为 String 的意义并非“字符串”,而是字符串的 UTF16编码,我们字符串的操作 charAtcharCodeAtlength等方法针对的都是UTF16编码。所以,字符串的最大长度,实际上是受字符串的编码长度影响的。

3. JS中的字符串无法变更

来看下面这个例子:

var str = 'hello';
str[0] = 1;
console.log(str); // 'hello'

str = 'hello world';
console.log(str); // 'hello world'
  • 我们试图修改字符串str中的第一个字符,结果发现str还是hello,这说明字符串是无法被更改的;
  • 而将str重新赋值为hello world,可以看到输出的为hello world,这是否说明字符串被成功更改了呢?
  • 实则不然。js中字符串的拼接、重复赋值等都会引用新的地址空间来存放字符串的值(因此很消耗内存),引用字符串的变量地址变了,字符串本身并没有改变。

4. 为何0.1 + 0.2 不等于0.3

console.log(0.1 + 0.2 === 0.3); // flase;

输出的结果是false,说明两边的值不相等。这是浮点运算的特点。浮点运算的精度问题导致等式左右两端的结果并不是严格相等的,而是差了一个微小的数。
正确的比较方法是使用js提供的最小精度值:

 console.log( Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON); // true

5. ES6新加入的Symbol是什么

6. 为何给对象添加的方法能用在基本类型上

相关文章

  • 课程《重学前端》的一些记录

    模块一:JavaScript 1. 为何有的编程规范要求用viod 0代替undefined? 因为js中,und...

  • 《重学前端》读后感(开篇词)

    前段时间前端领域大火的课程《重学前端》,相信学习前端的同学都不陌生,尤雨溪、玉伯等顶级大佬都推荐跟着作者重学前端路...

  • 《重学前端》学习笔记(一)

    概述 该笔记主要针对时下热门课程winner老师的《重学前端》所得的一些总结。 前端发展史 静态=》动态 1994...

  • 重学前端随笔

    学习材料是winter前辈的《重学前端》课程,记录一下盲点。 类型 为什么推荐用void 0代替undefined...

  • 重学前端(一) - HTML

    前言 最近学了winter老师的课程-重学前端,想一边学习课程一边梳理相关知识,重构自己的前端知识体系。 HTML...

  • 原生js实现红绿灯效果

    背景 winter重学前端课程中的一个问题:如何用JS实现红绿灯? codepen在线演示:https://cod...

  • HTML语义中使用的标签摘录

    前言 记录在《重学前端 - 04 | HTML语义:如何运用语义类标签来呈现Wiki网页?》使用到的标签,发现许多...

  • 重学课程

    1.数据结构 2.操作系统 3.计算机网络(计算机网络,自上而下学习方法) 4.计算机组成原理

  • 重学前端(一)前言

    前言 重学前端是 winter 大神在极客学院开的一门课,虽然是重学“前端”,但是大神说的方法其实也适用于学习各个...

  • 重学前端

    一、类型和对象 1 类型 1.1 概述 javascript语言中,有6种基本类型和1种引用类型。引用类型还可以细...

网友评论

      本文标题:课程《重学前端》的一些记录

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