js
语法和java类似 严格意义等于 === , 严格意义不等于 !== ; == != 只比较值,不比较数据类型,不建议使用。
函数定义:
function checkGuess() {
//doSomething
}常规函数调用:
checkGuess(); 事件函数传递:
guessSubmit.addEventListener('click', checkGuess);
获取选择器:
document.querySelector()
属性和style值对应,只是横杠分割的方式变成了驼峰方式
日志,console.log()
编写上,变量可以在被赋值之后再声明(实际解释上还是声明之后才赋值)
变量,由数字下划线字母组成,不允许数字开头,不建议下划线开头(内置变量),区分大小写
对象的定义:
//手动方式构造,最后一个变量不需要以逗号结尾,
//dog称为对象的字面量(literal),同时也作为命名空间namespace,约束这属性和方法
//name,breed就改叫属性property,greeting改叫方法(本来是函数)。
var dog = {
name : 'Spot',
breed : 'Dalmatian',
greeting: function() {
alert('Hi! I\'m ' + this.name[0] + '.');
}
};调用方式除了常规的dog.name,也可以使用dog['name']的方式,因为后者对象有时候被称作关联数组(associative array), 可以在外部直接添加成员变量 []的方式,可以传递变量名,如dog['name']等同于 var v= 'name'; dog[v]
继承的实现:
join(), shift(), unshift()
匿名函数,可以看出来可以传递: myButton.onclick = function() { alert('hello'); } 匿名函数也称为函数表达式。函数表达式与函数声明有一些区别。函数声明会进行声明提升(declaration hoisting),而函数表达式不会
可以使用addEventListener来快速定义事件,https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
事件冒泡和捕获
解析json: 为了载入 JSON 到页面中,我们将使用 一个名为XMLHTTPRequest的API
类结构:
默认情况下, 所有函数的原型属性的 proto 就是 window.Object.prototype 用new创建的对象,有点类似继承,但是以Person作为父
原型链中的“连接”被定义在一个内部属性中,在 JavaScript 语言标准中用 [[prototype]] 表示(参见 ECMAScript)。然而,大多数现代浏览器还是提供了一个名为 proto (前后各有2个下划线)的属性,其包含了对象的原型。疑问是,这里我看prototype是一个无限循环,proto 才是正常的 只有在prototype中的元素才会被继承,如Object.prototype.valueOf()
每一个函数对象(Function)都有一个prototype属性,并且只有函数对象有prototype属性,因为prototype本身就是定义在Function对象下的属性。当我们输入类似var person1=new Person(...)来构造对象时,JavaScript实际上参考的是Person.prototype指向的对象来生成person1。另一方面,Person()函数是Person.prototype的构造函数,也就是说Person===Person.prototype.constructor
考虑到JavaScript的工作方式,由于原型链等特性的存在,在不同对象之间功能的共享通常被叫做 委托 - 特殊的对象将功能委托给通用的对象类型完成。这也许比将其称之为继承更为贴切,因为“被继承”了的功能并没有被拷贝到正在“进行继承”的对象中,相反它仍存在于通用的对象中。
示例
Last updated
Was this helpful?