您的位置:首页 > Web前端 > JavaScript

js提升行为

2017-03-21 14:26 183 查看
1.js中变量声明提升,函数声明整体提升

2.若变量声明和函数声明重名了,一定是函数声明覆盖变量声明

3.js是解释型语言,即编译一次,执行一次,预编译大部分发生在函数执行前

4.预编译阶段发生变量声明和函数声明,没有初始化行为(赋值),匿名函数不参与预编译只在解释执行阶段才会进行变量初始化

5.预编译函数执行前

a.创建AO对象(active objec)

b.查找函数形参及函数内变量声明,形参及变量名作为AO对象的属性,值为undefined

c.实参形参相统一,实参值赋给形参

d.查找函数声明,函数名作为AO对象的属性,值为函数引用

预编译(脚本代码块script执行前)

1.查找全局变量声明(包括隐式全局变量声明,省略var声明),变量名作为全局对象的属性,值为undefined

2.查找函数声明,函数名作为全局对象的属性,值为函数引用

前端跨域问题

跨域:只要协议、域名、端口有任何一个不同,都为不同域

1.若协议和端口造成的跨域问题前端不能解决

2.域仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip,地址对应着两个域是否在一个ip上

浏览器有同源策略

1.是不能通过ajax的方法去请求不同源中的文档

2.是浏览器中不同域的框架之间是不能进行js的交互操作,不同的框架之间可以获取window对象,但是无法获取相应的属性和方法

3.通过document.domain跨域,可以使用这个将域名设置成相同的,但是要注意,只能把document.domain设置成自身更高一级的父域,且主域必须相同

js中的||将返回第一个不为false的那个值(可以是对象),或者返回最后一个值(若全部都为false的话)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: