- 基础知识的欠缺会限制解决问题嘚思路
- 知识架构(知识索引)目录
- 要建立自己的知识架构还要追本溯源
- HTML里head里面称为文档的元信息
- 表单和表格现在不常用了
- 前端的持续集荿比后端要更快
- 前端架构和基础库专业人才稀缺
- HTML分很多种,有head里面的元信息img ideo audio之类的替换型媒体标签
- 语义标签:由文字来承载
- 为什么要用語义标签?现在很多前端工程师多数不用复杂的语义标签只用div 和 span走天下
- ul是无需列表 ol是有序列表很多人喜欢给所有的并列关系都套上ul
- 语义標签是自然语言的补充
-
建议用viod 0来表示undefined,undefined是一个变量不是一个关键字是js的一个设计失误,为了避免变量被篡改
-
null和undefined:null表示为空(定义了但是為空)在编程时一般不会把变量赋值为undefined,可以保证所有undefined都是未赋值的状态
-
null类型只有一个值就是null,表示空值与undefined不同,null是js的关键字所鉯可以用null的关键字来获取null值
-
js的字符串是无法变更的,一旦字符串构造出来无法用任何方式改变字符串的内容,所以字符串具有值类型的特征
-
js的字符串把每个UTF16单元当作一个字符串来处理所以处理非BMP的字符串(0-655336)时要小心
-
js的这个设计继承了java
-
number类型,表示通常意义上的数字
-
js为了表达几个额外的语言场景引入了无穷大的概念
-
NaN:占用了0990这原本是符合IEEE规则的数字;
-
console.log(0.1 + 0.2 == 0.3);浮点数运算的精度问题导致等式左右的结果并不是严格相等,而是相差了个微小的值
-
这里错误的不是结论,而是比较的方法正确的比较方法是使用JavaScript提供的最小精度值:
- 检查等式左右两边差的绝对值是否小于最小精度,才是正确的比较浮点数的方法这段代码结果就是 true 了。
- js是通过一种原型的方式来实现
- 由于管理层要求模仿java所以引入了new,this等语言的特性看起来更像java
- 对象具有唯一标识性:即使完全相同的两个对象,也并非同一个对象(内存地址)
- 对象有状態:对象具有状态,同一对象可能处于不同状态之下
- 对象具有行为:即对象的状态,可能因为它的行为产生变迁
- 状态和行为在cpp中称为荿员变量和成员函数,python中叫属性和方法
- 在js中将状态和行为统一抽象为属性
- js允许运行时向对象添加属性
- js的两类属性:数据属性
- writable:决定属性能否被赋值
- configurable:决定该属性能否被删除或者该百年特征值
-
大多数只关心数据属性的值
- setter:函数或undefined在设置属性值时被调用。
- configurable:决定该属性能否被刪除或者改变特征值
- 访问器属性使得属性在读和写时执行代码,它允许使用者在写和读属性时得到完全不同的值,它可以视为一种函數的语法糖
- 可以使用 get 和 set 关键字来创建访问器属性
- javaScript语言标准也已经明确说明,JavaScript是一门面向对象的语言我想标准中能这样说,正是因为JavaScript的高度动态性的对象系统
- 什么是原型,照猫画虎猫就是原型
- 最为成功的流派是使用“类”的方式来描述对象,这诞生了诸如 C++、Java等流行的編程语言这个流派叫做基于类的编程语言。
- 还有一种就是基于原型的编程语言它们利用原型来描述对象。我们的JavaScript就是其中代表
- “基於类”的编程提倡使用一个关注分类和类之间关系开发模型。在这类语言中总是先有类,再从类去实例化一个对象类与类之间又可能會形成继承、组合等关系。类又往往与语言的类型系统整合形成一定编译时的能力。
- 与此相对“基于原型”的编程看起来更为提倡程序员去关注一系列对象实例的行为,而后才去关心如何将这些对象划分到最近的使用方式相似的原型对象,而不是将它们分成类
- 基于原型的面向对象系统通过“复制”的方式来创建新对象。一些语言的实现中还允许复制一个空对象。这实际上就是创建一个全新的对象