javascript精粹一句话摘要(持续添加中。。。。)

闲暇时又翻出以前读过的书翻看起来,突然间有一句话闪过脑海不能用几句话解释清楚的概念就等于不知道。诚惶诚恐的连忙把那些不能用几句话解释清楚的概念从书中摘录了下来,以备以后再次诚惶诚恐的时候拿来做一下挡箭牌。。。

js的简单数据类型包括数字,字符串,布尔值,null,undefined。其他所有的值都是对象。

在javascript中只有6种数据类型,5种简单数据类型,1种复合数据类型。


在对象的字面量中,如果属性是一个合法的javascript标示符且不是保留字,则并不强制要求用引号括住属性名。

{first_step:1,"second-step":2}


对象通过引用传递,他们永远不会被复制。

简单数据类型复制实体,复合数据类型复制指针。


只要把全局性资源都纳入一个命名空间之下 ,你的程序与其他程序,组件,类库发生冲突的可能性就显著降低。

其他还可以通过闭包的方式来减少全局变量的影响。


对象字面量产生的对象连接到Object.prototye,函数对象链接到Function.prototype。

function是怎么来的。。。


每个函数在创建时会附加两个隐藏属性:函数的上下文和实现函数行为的代码,同时也随配有一个prototype属性。

继续,function是怎么来的


调用一个函数时会暂停当前函数的执行,传递控制权和参数给新的函数。当一个函数被调用时,他从第一个语句开始执行,并在函数结束}或return时结束,然后控制权交还给调用函数

function test(){
	for(var i=0;i<10000;i++){
		if((i%1000)==0){
			console.log(i)
		}
	}
}

(function(){
	test();
	test();
	test();
})();
结果就是按照顺序打印了三遍


参数this在面向对象的编程中非常重要,他的值取决于调用的模式
后面写到了函数的四种调用方式:方法调用模式(对象点),函数调用模式(全局函数),构造器调用模式(new function点),apply,call调用。鉴于this比较重要,因此特意写下了一些笔记


一个函数总会返回一个值,如果没有制定返回值,则返回undefined。如果函数在调用时前面加上了new,且函数的返回值不是一个对象,则返回this。

function test(){

	this.pro="hello world";
	return this.pro;
}

function test1(){
	this.pro="hello world";
	return new Date();
	
}

console.log(new test());
console.log(new test1());

结果是第一次返回的是test,第二次是返回一个时间。


模块是一个提供接口却隐藏状态与实现的函数或对象

简单而言就是在外部域申明属性和方法,利用内部域对外部域具有访问的权利,返回给调用者,而且那些写在外部域的属性或方法在其他地方是没有访问权限的。

//counter作为一个计数器,如果写在全局域,则就可能失去了准确性。
var instance=outer();
instance.add();
instance.report();
//1
instance.add();
instance.report();
//2
instance=null;
instance=outer();
instance.add();
instance.report();
//1
instance.add();
instance.report();
//2
tip:闭包确实能够起到控制访问权限的作用,不过他会形成指针的相互引用造成内存不被释放,因此在确保使用完成后,手动释放内存。


函数化

通过一个方法,将对象封装在一个定义域内,通过返回的对象获得读写原对象的权限(还是使用闭包完成访问权限的问题)

这里会有些想法,可是还没完全想好。。。


js没有一个好的机制来区别数组和对象

var is_array=function(target){
	return Object.prototype.toString.apply(target)
}
console.log(is_array([]));
console.log(is_array({}));




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值