根据给定文件的信息,我们可以提炼出以下几个前端面试中常见的知识点: ### 1. 字符串操作与数组处理 #### 字符串拼接与分割 在示例代码中,`var info` 被定义为一个字符串,然后通过 `+=` 操作符进行字符串的拼接。之后使用 `split()` 方法将字符串按逗号分隔成数组。 **知识点详解**: - **字符串拼接**:使用 `+` 或 `+=` 运算符可以将多个字符串连接在一起。 - **字符串分割**:使用 `split()` 方法可以将字符串按照指定的分隔符分割成数组。 #### 数组的遍历与操作 接着,通过 `for` 循环遍历了分割后的数组,并使用 `alert()` 方法输出每一个元素。 **知识点详解**: - **数组遍历**:可以通过 `for` 循环遍历数组中的每一个元素。 - **数组元素访问**:使用索引 `[index]` 可以获取数组中的特定元素。 #### 使用数组初始化 在后续代码中,通过直接赋值的方式初始化了一个数组 `var info`,这与之前的字符串拼接和分割的方式进行了对比。 **知识点详解**: - **数组初始化**:可以直接使用方括号 `[]` 来初始化数组,并在其中放置需要的元素。 ### 2. JavaScript DOM 操作 #### 创建并加载外部脚本 示例代码还涉及到了如何动态创建并加载外部脚本。 **知识点详解**: - **动态加载脚本**:可以使用 `document.createElement()` 方法创建一个新的 `<script>` 元素,并设置其 `src` 属性指向外部脚本文件,然后将其添加到页面中。 - **脚本加载完成的检测**:不同浏览器支持的检测方式不同。对于 IE 浏览器,可以监听 `readystatechange` 事件;对于其他浏览器,则监听 `onload` 事件。 #### 加载脚本的方式 - **`defer` 属性**:仅被 IE 支持,可以让脚本在页面解析完成后执行。 - **`async` 属性**:HTML5 引入的特性,可以使脚本异步加载并在加载完成后立即执行。 ### 3. 函数作用域与变量提升 #### 作用域问题 在示例中有一段代码展示了函数作用域与变量提升的现象。 **知识点详解**: - **变量提升**:在 JavaScript 中,变量声明会被提升到当前作用域的顶部,但变量赋值不会被提升。 - **函数作用域**:在函数内部声明的变量只在该函数内部可见,这就是函数作用域。 #### 条件语句与函数重定义 代码中还包含了一个条件语句,根据不同的条件可能会重新定义函数 `f` 和 `g`。 **知识点详解**: - **函数重定义**:如果在同一个作用域内重新定义了一个已存在的函数名,那么后定义的函数会覆盖前一个函数。 - **条件执行**:通过 `if` 语句可以控制代码的执行流程。 ### 4. 对象与类型转换 #### 对象属性访问与类型转换 代码示例中有一个关于 `[] == ![]` 的比较,这涉及到对象的属性访问以及类型转换的问题。 **知识点详解**: - **对象属性访问**:可以通过方括号或点运算符访问对象的属性。 - **布尔类型转换**:使用 `!` 操作符可以将对象转换为布尔类型。 通过以上分析,我们可以了解到这些知识点都是前端开发者在日常工作中经常会遇到的一些基本概念和技术点,掌握它们对于通过前端面试至关重要。
var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。";
info +="拍拍网于2005年9月12日上线发布,";
info +="2006年3月13日宣布正式运营,";
info +="是目前国内第二大电子商务平台。";
info=info.split(",");
for(var i=0; i<info.length; i++)
{
alert(info[i]);
}
这题初看纯属折腾,因为后面要根据逗号分隔再alert每项,何不构造一个数组对象来存放文本内容,而要用个临时变量info才存放。
如var info=["腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。","拍拍网于2005年9月12日上线发布,","2006年3月13日宣布正式运营,","是目前国内第二大电子商务平台。"] 。可是后来想如果是优化的话这个题目就出的没意义了。
仔细观察info这个变量,发现它每次都要自加字符串,如果字符串很大的又很多的话会非常影响性能的。
对于js中的string类型,属于基本类型,因此一般情况下他们是存放在栈上的。如果字符串很大,info会每次变成一个很长的字符串,会很慢。
如果用引用类型数组来存放则好很多,如:
var temp=[];
temp.push("腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。");
//temp只是一个指向堆上数组的指针
temp.push("拍拍网于2005年9月12日上线发布,");
temp.push("2006年3月13日宣布正式运营,");
temp.push("是目前国内第二大电子商务平台。");
temp.join("");
alert(temp);
最后一招temp.join(“”)搞定。对处理大字符串连接问题都可以采取这种思路。
3 请给出异步加载js方案,不少于两种。
异步加载方式:
(1) defer,只支持IE
(2) async:html5中script标签才有的属性
(3) 创建script,插入到DOM中,加载完毕后callBack,见代码:
- 怎么要名字了2012-11-20太感谢了,前段时间一直在面试,没时间来评论,这个资源提供的面试题挺好的,帮了我
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助