面试题(十)
来源:互联网 发布:文字特效制作软件 编辑:程序博客网 时间:2024/06/05 00:56
字符串的替换问题
var str = 'my name is {$name}, I like {$hobby}';var obj = {name: '小红', hobby: '看电影'};//输出 my name is 小红, I like 看电影
答案
str.replace(/{\$(\w+)}/g, function(match, p1){ return obj[p1];})
结果
讨论
- $符需要转义
- 要添加g,使其全局匹配而不是只匹配一次
- /正则表达式/
new冲突
完善下面代码已保证代码可以正确运行
function ArrayLike(){ this.length = 0;}//补充codevar arr = new ArrayLike();console.log(arr.length); //0arr.push(5);console.log(arr.length); //1console.log(arr[0]); // 5
答案
解决方法有二
第一种方式function ArrayLike(){ this.length = 0; return new Array();}第二种方式ArrayLike.prototype = new Array();
讨论
- 第一种方式呢是直接返回一个Array实例。尽管new会返回一个对象,但是Array实例会覆盖他。
- 第二种方式则是让ArrayLike继承Array,这样其实例就可以拥有Array的方法了。
优化代码问题
var divs = document.getElementsByTagName('div');for(var i = 0; i < divs.length; i++) { if(document.addEventListener) { divs[i].addEventListener('click', function(){ console.log('div'); }) } else if(document.attachEvent){ divs[i].attachEvent('onclick', function(){ console.log('div'); }) }}
- addEventListener为DOM2,attachEvent为IE,需要添加DOM0的
divs[i]['onclick'] = function(){}
- 判断divs是否合法
if(divs!=null)
- 每次都读取divs的长度,将其保存在变量中
var length = divs.length
欢迎补充~~
0 0
- 面试题(十)
- 面试题(十)Oracle
- iOS 面试题(十)
- Java面试题(十)
- 微软面试题<十>
- 面试题之十
- iOS面试题十
- H5---面试题十
- C/C++面试题十
- Java面试题之十
- hadoop面试题整理(十)
- C++经典面试题(十)
- 【二十】一个面试题
- 十道经典面试题
- Java面试题之十
- 软件测试面试题及解析(十)
- 软件测试面试题及解析(十)
- IT公司笔试面试题系列(十)
- Maven常用命令
- Logger日志级别说明及设置方法、说明
- 深度学习 16. 反向传递算法最简单的理解与提高,BP算法,Backpropagation, 自己的心得。
- PHP判断是不是https协议
- vitrualbox安装后centos后的网络配置(host-only)
- 面试题(十)
- footer随能容高度,固定到底部Sticky footers
- 用命令形式从Windows系统拷贝文件到Linux
- ArcGIS API for JavaScript 4.x中的3D部分(4)
- mysql死锁问题分析
- Linux 磁盘管理
- IOS和安卓ui设计常用尺寸及基本知识
- 二叉树的镜像
- Spring的事务到底该给Dao配置还是给Service配置?