js|青训营笔记

44 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

JavaScript

js设计要旨

各司其责

  • HTML/CSS/JS各司其责 应当避免不必要的由JS直接操作样式可以用class来表示状态 纯展示类交互寻求零JS方案

组件封装

·组件设计的原则:封装性、正确性、扩展性、复用性实现组件的步骤:结构设计、展现效果、行为设计 三次重构 插件化 模板化 抽象化(组件框架)

过程抽象

js操作css 而不是用js 操作页面

label for checkbox 可以点lable 可以改变样式

实例

轮播图

innerHTML innerText

innerHTML 会识别 标签 去重空格和换行

innerText 不会识别标签 去重空格和换行

setTimeout

等待时间后执行这个函数

setTimeout("changeState()",3000 );

== (相等)和 ===(全等)

=== 比 == 严格

比较过程:

  双等号==: 

  (1)如果两个值类型相同,再进行三个等号(===)的比较

  (2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:

    1)如果一个是null,一个是undefined,那么相等

    2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较

  

  三等号===:   (1)如果类型不同,就一定不相等   (2)如果两个都是数值,并且是同一个值,那么相等;   (3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。

表示空

###null 与 undefined 不能发生转化

NaN

NaN != NaN 所以不能单纯的通过等号来判断 是不是 NaN

不了解的promise/async await

数据类型的判断有哪些方法?他们的优缺点及区别是什么?

然后判断数据类型的方法一般可以通过:typeof、instanceof、constructor、toString四种常用方法

不同类型的优缺点typeofinstanceofconstructorObject.prototype.toString.call
优点使用简单能检测出引用 类型基本能检测所有 的类型(除了 null 和 undefined)constructor 易被 修改,也不能跨 iframe
缺点只能检测 出基本类 型(出 null)不能检测出基 本类型,且不 能跨 iframeconstructor 易被 修改,也不能跨 iframeIE6 下,undefined 和 null 均为 Object

for in 和 for of

for in更适合遍历对象,当然也可以遍历数组,但是会存在一些问题,

for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值

for in总是得到对象的key或数组、字符串的下标

for of总是得到对象的value或数组、字符串的值

for in 和 for of 的区别 - 掘金 (juejin.cn)

js字符串

split('')& join('')

split 是将一个按照指定分隔符,分隔放入数组

join 是将一个数组有指定分隔符分隔放入数组 join('分隔符')

自我提问

  • js的设计要旨是啥?
  • == 与 ===的区别

参考文档 :前端常见面试题(56道) - 掘金 (juejin.cn)