js学习记录(二)

js的匿名函数

(function(){alert("this is anymouns ")})

不加括弧会报错的。用这种方式是想不去创建函数对象,要不然会亏的慌。

立即执行函数,在上面的后面加();往往只能执行一次,这个东西没有变量保存它。不仅能调还能传参数。

(function(a,b){console.log("a="+a);
              cosole.log("b="+b);})(123,456);

js中的for in 语句计算

for (var n in obj)

{console.log("hello");
 console.log(obj[n]);
}
//第二个方式才能取出对象里边属性的值。n是一个变量。

作用域

作用域指一个变量作用的范围

在js中一共有两种作用域,

1.全局作用域

2.函数作用域

全局作用域在页面打开时创建,在页面关闭时销毁。

在全局作用域中,有个全局对象window,它代表浏览器窗口。

在全局作用域中;创建的变量都会作为window对象 的属性保存。创建的方法作为函数的方法保存。

声明提前

变量的声明提前。

使用var关键字声明的变量会在所有代码的执行之前被声明。(但是不会赋值),但是如果声明变量时不使用var关键字,则变量不会被声明提前。

函数的声明提前,使用函数声明形式创建的函数function函数(){}

它会在所有的代码执行之前就被创建,所以我们可以在函数声明前来调用函数,使用函数表达式创建的函数,不会被声明提前,所以不能在声明前调用。

function

函数作用域

调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁。每调用一次函数就会创建一个新的函数作用域,他们之间是互相独立的。在函数作用域中可以访问到全局作用域的变量。在全局作用域中无法访问到函数作用域的变量。

当在函数作用域操作一个变量时,它会在自身作用域中寻找,如果有就直接使用,如果没有则向上一级作用域中寻找。

this

解析器在调用函数每次多会向函数内部传递进一个隐含的参数,这个隐含的参数就是this.这个对象我们称为函数执行的上下文对象。

1.以函数形式调用时,this永远是window

2.以方法调用时,this就是方法调用的对象。

JS的构造函数

构造函数一般首字母大写,加new是构造函数。

function Person(){
    
}
var per=new Person();

JS的构造函数原型对象

将对象共用属性和方法,统一添加到构造函数的原型对象中。这样不用分别为每一个对象添加,也不会影响全局作用域。

function Myclass(){}
Myclass.prototype.name="我是原型中的名字";
var mc=new MyClass();
console.log(mc.name);

原型对象也是对象,所以它也有原型

当我们使用一个对象的属性或方法时,会先在自身中寻找,

自身中如果有,则直接使用

如果没有则去原型对象中寻找,如果原型对象中有,则使用。

如果没有则去原型的原型中寻找。直到object对象的原型,

object对象的原型没有原型,如果在object中依然没有找到,则返回undefined。

JS的垃圾回收

我们好像是不能自己手动回收的,我们只能将不再使用的对象作为null.

var obj=new Object();
obj=null;

JS数组也是一个对象

var arr=new Array();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值