1.function test(a,b,c){
this.a=a;
this.b=b;
this.c=c;
}
var s=new test(10,20,30);
s.prototype.addNew=500; //prototype为test对象添加addNew属性。
alert(s.addNew) //弹出的是500
2.try{
}catch(e){} try大括号中的内容报错的话。catch就会做出相应的操作。
3.webstorm快捷键:
shift+tab 代码左移。
ctrl+alt+L 格式化代码
ctrl+] / [ 光标移动到代码块的前面或后面
var eventEmitter=new require('events').EventEmitter()
eventEmitter.addListener(event,listener) 为指定时间添加一个监听器到监听器数组的尾部
eventEmitter.on('xxx',function(){}) 未指定事件注册一个监听器
eventEmitter.once('xxx',function(){}) 为指定时间注册一个单次监听器
eventEmitter.removeListener(event,listener) 移除指定事件的某个监听器
eventEmitter.removeAllListeners([event]) 移除所有时间的所有监听器,如果指定时间,移除指定事件的所有监听器
eventEmitter.setMaxListeners(n) 默认情况下,EventEmitter 如果添加的监听器超过10个就会输出警告信息,该函数提高监听器的们默认限制数量
eventEmitter.listeners(event) 指定事件的监听器数组
eventEmitter.emit(event,[arg1],[arg2],[...]) 按参数顺序执行每个监听器,如果事件有注册监听返回true,否则返回false
eventEmitter.listenerCount(emitter,event) 返回指定事件的监听器数量
eventEmitter.newListener(event,listeners) 该事件在添加新监听器时被触发
this.http.get(url,{headers:new Headers({'Content-type':'application/json'})})
.toPromise()
.then(
res=>{ }
)
res为返回值,
4.声明变量:
function add(num1,num2){
sum=num1+num2;
}
var result=add(10,20);
alert(sum)
!!!!1.如果初始化变量时没有使用var声明,该变量会自动被添加到全局环境。
!!!!2.为了确保有效的回收内存,应该及时解除不再使用的全局对象、全局对象属性以及循环引用变量的引用。
!!!!3.var name={"a":1,"b":2,"c":3} 对象的获取:一、 name.a 二、name["a"] 第二种可以把变量写入中括号
!!!!4.var name=[1,2,3] name.length可以设置数组的长度。如2.就只剩下[1,2].如name[10]="123";数组变为11长度。中间都为undefined
-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------
1.typeof 判断变量类型
var a='ss'; console.log(typeof a); //string
var b=null; console.log(typeof b); //object
2.instanceof 判断一个变量是否某个对象的实例
var a=new Object('22'); document.write(a instanceof Object/String);
3.valueof 返回原始值
var test= new Number('sss'); test.valueOf(); //NaN
4.var test=new Object(); 创建Object引用类型的一个新实例。把该实例保存在test变量中。
5.'!'操作符,先判断内容的真假,后做相反操作。
6.隐式转换:var a=true;var b=2;console.log(a+b) //3
7.var test= new Array(1,2,3,4);
Array.isArray(test) //true
8.变量未定义与变量为命名
9.小数相加有bug,如0.1+0.2。结果会有误差。
10. var ss = new Sum(); //初始化变量。
console.log(Sum.prototype.isPrototypeOf(ss)); //返回 true。
11.hasOwnProperty
第四章 变量、作用域和内存问题
1.引用类型和基本类型
基本类型,操作保存在变量中的实际值。
引用类型,在操作对象时,操作对象的引用,而不是实际的值。不能直接操作对象的内存空间
2. function setName(obj) {
obj.name = "Nicholas";
obj = new Object();
obj.name = "Greg";
}
var person = new Object();
setName(person);
alert(person.name); // "Nicholas"