检测eval()的参数是否合法:
try { alert("Result:" + eval(prompt("Enter an expression:",""))); }catch(exception) { alert(exception); }
在编程语言中 0是FALSE 1是TRUE ,通用潜规则是,0表示假,所有非零表示真。这样记忆:0,什么都没有骗人的,是假。
高内聚低耦合
高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模 块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。
instanceof说明
instanceof 运算符是 JavaScript 语言中原生的用来判断实例继承关系的操作符。在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 “object”。ECMAScript 引入了另一个 Java 运算符 instanceof 来解决这个问题。instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型。与 typeof 方法不同的是,instanceof 方法要求开发者明确地确认对象为某特定类型。通常来讲,使用 instanceof 就是判断一个实例是否属于某种类型。,更重的一点是 instanceof 可以在继承关系中用来判断一个实例是否属于它的父类型。
补充
对于使用构造函数创建的对象,我们通常使用instanceof来判断某一实例是否属于某种类型,
typeof说明
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
语法
stringObject.indexOf(searchvalue,fromindex)
说明
该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。
提示和注释
注释:indexOf() 方法对大小写敏感!
注释:如果要检索的字符串值没有出现,则该方法返回 -1。
补充
typeof接受一个值并返回它的类型,它有两种可能的语法:
typeof xtypeof(x)
{}.toString说明
typeof的问题主要在于不能告诉你过多的对象信息,除了函数之外:
toString是可依赖的,不管是object类型还是primitive类型,它都能告诉我们正确的结果。但它只可以用于判断内置的数据类型,对于我们自己构造的对象,它还是不能给出我们想要的结果JavaScript constructor 属性
定义和用法
constructor 属性返回对创建此对象的数组函数的引用。
语法
object.constructo
Javascript运算符优先级
下表按从最高到最低的优先级列出 JScript 运算符。具有相同优先级的运算符按从左至右的顺序求值。
运算符 描述
. [] () 字段访问、数组下标、函数调用以及表达式分组
++ — - ~ ! delete new typeof void 一元运算符、返回数据类型、对象创建、未定义值 * / % 乘法、除法、取模 + - + 加法、减法、字符串连接 << >> >>> 移位 < <= > >= instanceof 小于、小于等于、大于、大于等于、instanceof == != === !== 等于、不等于、严格相等、非严格相等 & 按位与 ^ 按位异或 | 按位或 && 逻辑与 || 逻辑或 ?: 条件 = oP= 赋值、运算赋值 , 多重求值
圆括号可用来改变运算符优先级所决定的求值顺序。这意味着圆括号中的表达式应在其用于表达式的其余部分之前全部被求值。
charCodeAt() 方法
返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。语法
stringObject.charCodeAt(index)
提示和注释
注释:字符串中第一个字符的下标是 0。如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。
charCodeAt(i)>255是用来判断非常规字符的。如中文、日文。这些字符一个占用2个字节。关于闭包
函数里放匿名函数,则产生了闭包
前端页面有哪三层构成,分别是什么?作用是什么?
a. 结构层:由 HTML 或 XHTML 之类的标记语言负责创建,仅负责语义的表达。解决了页面“内容是什么”的问题。
b. 表示层:由CSS负责创建,解决了页面“如何显示内容”的问题。
c. 行为层:由javascript(脚本)负责。解决了页面上“内容应该如何对事件作出反应”的问题。
一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。
a. 图片懒加载,滚动到相应位置才加载图片。
b. 图片预加载,如果为幻灯片、相册等,将当前展示图片的前一张和后一张优先下载。
c. 使用CSSsprite,SVGsprite,Iconfont、Base64等技术,如果图片为css图片的话。
d. 如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图,以提高用户体验。