JS开发中基本数据类型有哪些,含义
数值(number):整数和小数(比如1和3.14)
字符串(string):字符组成的文本(比如"Hello World")
布尔值(boolean):true(真)和false(假)两个特定值
undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值
null:表示无值,即此处的值就是“无”的状态。
对象(object):各种值组成的集合
symbol:表示独一无二的值。
NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。
NaN不等于任何值,包括它本身。
NaN === NaN // false
数组的indexOf方法内部使用的是严格相等运算符,所以该方法对NaN不成立。
[NaN].indexOf(NaN) // -1
NaN在布尔运算时被当作false。
Boolean(NaN) // false
NaN与任何数(包括它自己)的运算,得到的都是NaN。
判断数据类型
1.Object.prototype.toString.call() ;
2.instanceof 是用来判断 A 是否为 B 的实例,通过原型链来判断。
instanceof可以判断复杂数据类型,基本数据类型不可以
3.typeof
用于判断数据类型,返回值为6个字符串,分别为string、Boolean、number、function、object、undefined。
typeof在判断null、array、object以及函数实例(new + 函数)时,得到的都是object。
typeof是根据数据在存储单元中的类型标签来判断数据的类型,instanceof则是根据函数的prototype属性值是否存在于对象的原型链上来判断数据的类型。
浏览器内核
浏览器内核(Rendering Engine),是指浏览器最核心的部分,负责对网页语法的解释(如标准通用标记语言下的一个应用HTML、JavaScript)并渲染(显示)网页。
IE盒模型和标准盒模型的区别
W3C 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。
标准盒子模型的宽:包括margin+border+padding+width;
IE 盒子模型的 content 部分包含了 border 和 pading。
iE中的盒子模型的宽:是margin+width;(width中包含了padding和border这两个属性)
box-sizing的值为border-box来实现ie盒模型和标准盒模型的切换
懒加载
懒加载其实就是延时加载,即当对象需要用到的时候再去加载。
当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样就只需请求一次,俗称占位图),只有当图片出现在浏览器的可视区域内时,才设置图片正真的路径,让图片显示出来。这就是图片懒加载。
页面加载速度快、可以减轻服务器的压力、节约了流量,用户体验好
实现方法:
1.最常见的懒加载方式就是利用<img>标签。懒加载图片时,我们利用JavaScript检查<img>标签是否在视窗中。如果在,<img>的src(有时候是srcset)就会设置为目标图片的url。
2.这个行为可用于延迟CSS图片资源的加载,思路是通过JavaScript检测到元素处于视窗中时,加一个class类名,这个class就引用了外部图片资源。
html标签语义化
语义化的网页的好处,最主要的就是对搜索引擎友好,有了良好的结构和语义你的网页内容自然容易被搜索引擎抓取,你网站的推广便可以省下不少的功夫。
根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。
\