web前端面试题
来源:互联网 发布:最全金融网络理财产品 编辑:程序博客网 时间:2024/06/15 03:10
***类数组对象 vs []:
相同: 1. 都可用[i]访问每个元素
2. 都有length属性记录元素个数
3. 都可用for循环遍历,尽量不要用for in遍历
不同点: 1. 类型不同:
[] 是 Array类型
类数组对象 是 Object类型
2. 类数组对象无法使用数组API
*****闭包:保护一个可重用的局部变量的词法结构
为什么: 全局变量:可重用,但易被污染
局部变量: 不可重用,
何时使用: 即可重用,又不会被污染
如何创建闭包:
1. 外层函数封装受保护的变量以及专门操作变量的内层函数
2. 外层函数将操作变量的内层函数返回到外部
3. 调用外层函数,获得内层函数的对象。
鄙视时:
1. 找受保护的变量
2. 同一次外层函数调用返回的内层函数,始终使用同一个受保护的局部变量
3. 每调用一次外层函数,就会多创建一个受保护的变量的副本。
数据属性的特性: 4大特性:
value: 实际存储属性值的特性
writable: 是否可写
enumerable: 可遍历的,控制能否用for in遍历到
configurable: 能否修改其他特性,或能否被delete
如何访问属性的特性:
var descriptor=
Object.getOwnPropertyDescriptor(obj,"属性");
如何修改指定属性的特性:
1. 一次只能修改一个属性的四大特性。
Object.defineProperty(obj,"属性名",{
特性名:值,
...:...
})
强调: 如果obj中不包含指定的"属性名",会自动添加同名属性定义。
四大特性的默认值:
1. 使用传统方式添加的属性,四大特性默认值为true
2. 如果用defineProperty添加的属性,其四大特性默认是false。
强调: configurable特性一旦改为false,则属性禁止被删除,属性的其他特性禁止被修改——浏览支持可能不一致
访问器属性: 4大特性:
get:function(){ return xxxx; }
set:function(value){ xxx=value;}
enumerable:
configurable:
强调: 没有value,不直接保存数据!
何时使用: 需要对私有属性提供复杂逻辑的验证和保护时
***如何使用:一般用在构造函数中,配合私有属性使用
公有属性: 对象外部可用.访问到的属性——public
普通的属性都是公有的。
私有属性: 对象外部无法通过.访问到的属性——private
构造函数中的局部变量。
何时定义: 一个属性不希望随便使用.访问时,都要定义为私有属性(局部变量),但必须被闭包保护才能留下在。
鄙视题: 定义一个Emp类型,包含私有属性id和公有属性name:
function Emp(id,ename,age){
var _id=id;//私有属性_id
this.ename=ename;//公有属性ename
//定义专门保护私有属性的访问器属性
Object.defineProperty(this,"id",{
get:function(){return _id;},
//如果只读可省略set
set:function(value){_id=value;},
enumerable:true,
configurable:true
});
}
DOM
鄙视题: HTML XHTML DHTML XML
HTML: Hyper Text Markup language
专门编写网页内容的语言
XHTML: 严格的HTML语言标准
DHTML: 所有动态网页技术统称
XML: eXtensible Markup language
专门存储结构化数据时
用途: 1. 存储 2. 在互联网中传输
vs HTML 都是标记语言:语法完全相同!
不同: XML完全自定义标签和属性名
鄙视题:
1. 统计字符串中每个字符出现的次数
同: 找出字符串中出现次数最多的字符,共出现?次
2. 去掉数组中重复的元素
(^|,)([^,]+)(,,\2+)(,|$)
//2. 去掉数组中重复的元素,仅保留有多个相同元素的元素
如何错误处理:
try{
可能出错的代码
}catch(err){
处理错误的代码
}finally{
无论是否出错,都要执行的代码
}
- web前端面试题
- Web前端面试题
- web前端面试题
- web前端面试题
- web前端面试题
- web前端面试题
- web前端面试题
- Web前端面试题
- web前端面试题
- web前端面试题
- web前端面试题
- web前端--面试题
- web前端面试题
- web前端面试题
- Web前端面试题
- web前端面试题
- web前端面试题
- web前端面试题
- django框架用户权限中的session缓存到redis中
- 两数组的交
- 第一个接口
- [iOS开发:通讯录获取 转]
- [LeetCode]Longest Palindromic Subsequence
- web前端面试题
- 剑指offer:第49题字符串转化成整型(题目要求:不要用转换函数)
- c++ 根据当前的时间转化为一串数字
- Python3.6.1下载与安装
- 关闭页面时使用jQuery调用事件的方法
- 使用cocos2d-x游戏引擎做一个helloworld界面
- SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)
- Kotlin ---- 环境搭建和命令行编译运行HelloWorld
- phpstorm 免费激活码