JavaScript 总结 | 青训营

69 阅读1分钟

JavaScript的语言组成

  • 基本语法:C
  • 数据类型 内存管理:Java
  • 函数式编程:Scheme 函数是第一等公民
  • 原型继承:Self 基于原型prototype的继承机制

奇葩的JavaScript代码

('b'+'a'+ + 'a'+'a'+ +'').toLowerCase()//"banana0"  
0 == '0' //true  
0 == 【】 //true  
'0' == 【】 //false  
typeof NaN //number  
99999999999//100000000000  
0.1+0.2==0.3//false 精度丢失  
Math.max()//-[Infinity]()** 负无穷  
Math.min()//Infinity 正无穷  
【】 + 【】 //""  
【】 + {} //"【object object】"  
{} + 【】 // 0  
true + true + true===3 //true  
true - true //0  
(!+【】+【】+!【】).length//9 "truefalse"  
9 + "1" //91  
91 - "1" //90  
【】 == false //true  
0==false //true  
undefined == false //true  
NaN == false //true  
"" == false //true 包括多空格  
null == false //true  

语言特性

动态类型语言 JS 编译环境JIT Just In Time Compilation

静态类型语言 C++ 编译环境 AOT Ahead Of Time

写好JS的一些原则

  1. 各司其职

-HTML/CSS/JS 各司其职

这个部分我的理解是,HTML, CSS和 JavaScript的代码要分开写,不要同时出现在一个文件里面。

-应当避免不必要的由JavaScript直接操作样式

-可以用class来表示状态

-纯展示类交互应寻求零JS方案

  1. 组件封装

-组件设计的原则:封装性、正确性、扩展性、复用性。

-实现组件的步骤:结构设计、展现效果、行为设计。

-三次重构:插件化、模板化、抽象化(组件框架)。

  1. 过程抽象

过程抽象是指用来处理局部细节控制的一些方法,是函数式编程思想的基础应用。