JavaScript第二天

对象
创建对象:var obj = new Object();或var obj = {}
创建属性:obj.name = "小王"
读取对象中不存在的属性,会返回undefined
删除对象的属性:delete 对象.属性名
属性名不强制要求遵守标识符的规范
如果要使用特殊的属性名:
对象["属性名"] = 属性值
[] 中可以传递一个变量,这样属性名就是变量值
属性值可以是任意值,也可以是对象
in 运算符:检查对象中是否存在某个属性
"属性名" in 对象
对象字面量:obj = {name:"小王", test:{name:"小三"}}
函数
创建函数对象:
一、var fun = new Function("console.log('helle world')")
fun();
二、函数声明创建函数:function 函数名([形参1,形参2,...]){}
function fun(){}
这种方式创建的函数会在所有代码执行之前被创建,可以在声明函数的代码之前调用函数
三、函数表达式创建匿名函数:var 函数名 = function([形参1,...]){}
var fun = function(){}
先声明了fun变量,必须要执行到创建函数这行代码处才会给函数变量赋值,只能在创建函数代码之后调用函数

调用函数时不会检查实参的类型和数量,多余的实参不会被赋值
没有赋值的形参值为undefined
立即执行函数:
(function(){
代码块;
})();

全局作用域
在页面打开时创建,在页面关闭时销毁
全局作用域用一个全局对象window,全局作用域中创建的变量都会作为window的属性值保存
全局作用域中的函数都作为window的方法保存
使用var关键字声明的变量,会在所有代码执行之前声明变量,但是不会提前赋值
函数作用域
可以访问到全局作用域
如果全局作用域和函数作用域中有相同名字的变量,会先访问自己所在作用域的变量,如果不存在,再在上一级作用域中去寻找
在函数作用域中使用关键字var也会将变量声明提前,不会提前赋值
在函数中不使用var声明的变量都会成为全局变量

posted @ 2021-03-03 18:59  MasterBeyond  阅读(35)  评论(0编辑  收藏  举报