收获
GitHub
- 了解了Github的具体作用
- 会使用Github托管自己的项目
JavaScript
- -号的作用,如果 string - umber 那么会先尝试把 string 转换成 number 然后进行相减
- ==:string == number 会把string转换成number ===:数据类型相同,值也相同
- Object.prototype.toString.call() 方法 判断数据的类型,对象、函数都可以判断出来
var aa = ['1','2','3','4','5'];
Object.prototype.toString.call(aa);
//返回结果: [object Array]
- .的作用和 [] 的作用相同
var obj = {x:1,y:2}
obj.x === obj['x']
- 条件运算符:var val = true ? 1:2
var val = boolean ? 值1 : 值2
// 如果boolean为true,那么 val=值1;如果为false,val=值2
- 删除对象属性的值 delete obj.x
var obj = {x:1,y:2}
obj.x //1
delete obj.x
obj.x //undefined
- 删除对象属性的高级方法:
var obj = {};
Object.defineProperty(obj,'x',{ //IE9+
configurable:false, //为true,可以删除;为false,不可以删除
value:1 //赋值
});
delete obj.x; //false
obj.x; //1
- for..in语句 循环和便利数组元素或者对象属性
var i; //创建一个空变量,用于 in
var a = ['1','2','3','4'];
for(i in a){ //把 a 里面的元素赋值给 i
document.write(a[i] + "<br />"); //打印出 a 所有的元素
}
JavaScript 严格模式 'use strict'
修复部分语言上的不足,提供更强的错误检查,并增强安全性
function func(){
'use strict';
}
- 不允许使用with(with是个什么鬼我也不知道)
- 不允许使用未定义的变量 定义变量前面必须加 var
- ...
JavaScript 对象
- key属性,每一个对象都有,相当于 Array 里面的下标,也就是对象属性的名称
- 原型链 prototype
克隆原型链上的所有属性,并且可以访问到
function foo(){};
foo.prototype.z = 3;
var obj = new foo();
obj.x = 1;
obj.y = 2;
obj.z //3
- hasOwnProperty() 方法,返回自身对象的属性(不包括原型链),有返回true,没有返回false
var val = {x:1,y:2,z:3};
val.hasOwnProperty("z") //返回true
- in 方法,作用和hasOwnProperty()相同,不同的是原型链上的属性也会显示出来
属性 in 对象
- Object.create() 方法
示例:
var o = {x:1,y:2,z:3}; //先创建一个对象
var obj = Object.create(o) //使用Object.create() 方法创建对象,()里面的对象就是这个对象的原型
对象属性的操作
- 访问属性:
对象.属性 对象['属性'] for..in
- 删除属性:
delete 对象.属性
- 属性检测:
in hasOwnProperty
- 枚举属性:
对象.propertyIsEnumerable('属性')
可枚举性属性决定该属性是否可以被for..in到,默认是true - Object.defineProperty可以让枚举属性为false,也就是不能被for..in到
Object.defineroperty(对象,'属性',{enumerable:false,value:1000})
想法
很有成就感啊,看教程中首次听到了好多新概念,一丁点都没有头绪,好几次都想放弃,但是最后还是坚持了下来,坚持过后才发现,原来也并不是那么难嘛..
兴奋
打算
- 继续学习JavaScript对象的知识
- 继续看imooc上面的课程
- 复习今天学到的原型链、for..in、in、hasOwnProperty、枚举、delete、PropertyIsEnumerable