js第二天知识总结
2016-07-06 10:42
519 查看
字符串的数组处理方式:
用法: str[i] 功能同 str.charAt(i)
注意: 字符串虽然有上面这个功能,但是它不是数组,所以它没有数组的方法,比如push
函数:
函数的三种声明方式:
1. function xx(形参){ 方法体} 最常用
2. var xx=function(形参){方法体} 较常用 也证明了 函数也是对象
3. var xx=new Function(arg1,arg2,...funcBody) 不用
联系:
1和2两种声明方式 最根本是执行的第三种方式
区别(考点):
第一种声明方式,最优先加载。
二三种声明方式,顺序加载。
javascript 函数 是没有重载的!
回调函数:
一个函数声明过后,在另一个函数中执行
第一种情况:
没有参数时,可以直接传函数名
第二种情况
有参数时,把它放在匿名函数中
一般不管有参数还是没参数,都放在匿名函数中
模拟了一个函数的重载
函数的形参和实际传入的参数 没有关系。
arguments 它是所有实参集合成的数组
匿名函数自调用:
写法:
(function(形参){
方法体
})(实参)
作用: 一般用来初始化一些 属性或 配置
Object对象:
它是所有javascript 对象的祖先,在它里边定义的方法,其他对象都有。
动态的添加属性 比如 obj.name="zhangsan"
动态的添加函数 比如 obj.func=function(){}
动态的删除属性或函数 比如 delete obj.xxx
Json对象 (重要):
格式: {"键1":"值1","键2":"值2",......}
它动态的添加属性或函数 动态的删除属性或函数 的方式 和Object对象 json={"name","zhangsan"}不行
取值的方式
1)json.key 这里的key 是实际的 比如 json.name
2)json[key] 这里的key 是可变
json的遍历:
json有没有length? 没有 所以第一种for 是不行的
for(var i in json){} 可以 i 代表的是 键
工厂模式创建对象:
调用这个工厂,在工厂中生产出对象,然后返回出来.
this构造器的方式创建对象:
和java基本一样 最常用
prototype(原型):
给对象模板上添加属性或函数
一般用来添加函数,而不用来添加属性。 因为如果是添加的属性,对象对属性进行更改过后,有可能影响我们的模板.
javascript之this你到底指向谁:
因为javascript 是基于对象,它的this ,在使用的时候才知道它指向谁。
js中的this:谁调用我,我就指向谁。
第一种:
创建对象的时候,型如: var p=new Person(){ 这里面的this指向 new出来的这个对象 p}
第二种:
没有明确对象调用的时候, this指向 Window function test (){ this} test() -->Window
第三种:
谁调用我,我就指向谁。 型如 xx.func() func里面的this 指向 xx
call和apply:
function.call(thisObj,arg1,arg2,...) 作用是 将function中的this 替换为 thisObj
function.apply(thisObj,[arg1,arg2,...]) 作用是 将function中的this 替换为 thisObj
用法: str[i] 功能同 str.charAt(i)
注意: 字符串虽然有上面这个功能,但是它不是数组,所以它没有数组的方法,比如push
函数:
函数的三种声明方式:
1. function xx(形参){ 方法体} 最常用
2. var xx=function(形参){方法体} 较常用 也证明了 函数也是对象
3. var xx=new Function(arg1,arg2,...funcBody) 不用
联系:
1和2两种声明方式 最根本是执行的第三种方式
区别(考点):
第一种声明方式,最优先加载。
二三种声明方式,顺序加载。
javascript 函数 是没有重载的!
回调函数:
一个函数声明过后,在另一个函数中执行
第一种情况:
没有参数时,可以直接传函数名
第二种情况
有参数时,把它放在匿名函数中
一般不管有参数还是没参数,都放在匿名函数中
模拟了一个函数的重载
函数的形参和实际传入的参数 没有关系。
arguments 它是所有实参集合成的数组
匿名函数自调用:
写法:
(function(形参){
方法体
})(实参)
作用: 一般用来初始化一些 属性或 配置
Object对象:
它是所有javascript 对象的祖先,在它里边定义的方法,其他对象都有。
动态的添加属性 比如 obj.name="zhangsan"
动态的添加函数 比如 obj.func=function(){}
动态的删除属性或函数 比如 delete obj.xxx
Json对象 (重要):
格式: {"键1":"值1","键2":"值2",......}
它动态的添加属性或函数 动态的删除属性或函数 的方式 和Object对象 json={"name","zhangsan"}不行
取值的方式
1)json.key 这里的key 是实际的 比如 json.name
2)json[key] 这里的key 是可变
json的遍历:
json有没有length? 没有 所以第一种for 是不行的
for(var i in json){} 可以 i 代表的是 键
工厂模式创建对象:
调用这个工厂,在工厂中生产出对象,然后返回出来.
this构造器的方式创建对象:
和java基本一样 最常用
prototype(原型):
给对象模板上添加属性或函数
一般用来添加函数,而不用来添加属性。 因为如果是添加的属性,对象对属性进行更改过后,有可能影响我们的模板.
javascript之this你到底指向谁:
因为javascript 是基于对象,它的this ,在使用的时候才知道它指向谁。
js中的this:谁调用我,我就指向谁。
第一种:
创建对象的时候,型如: var p=new Person(){ 这里面的this指向 new出来的这个对象 p}
第二种:
没有明确对象调用的时候, this指向 Window function test (){ this} test() -->Window
第三种:
谁调用我,我就指向谁。 型如 xx.func() func里面的this 指向 xx
call和apply:
function.call(thisObj,arg1,arg2,...) 作用是 将function中的this 替换为 thisObj
function.apply(thisObj,[arg1,arg2,...]) 作用是 将function中的this 替换为 thisObj
相关文章推荐
- js模拟map实现原理终极版
- (javascript)浅析js函数表达式和函数声明以及闭包
- js定时器setInterval()与setTimeout()区别、10秒自动跳转
- HTML+css+js定义好的字体忽大忽小,乱变,js切换文字内容
- js中几种实用的跨域方法原理详解
- 关于js中正则的使用
- JavaScript跨域
- jsp笔记
- HTML与DOM BOM javascript
- ZTree学习(三),ztree树扩展
- js中window.open的参数及注意注意事项
- DOM事件
- 快速解决js动态改变dom元素属性后页面及时渲染的问题
- C#json数据的序列化和反序列化(将数据转换为对象或对象集合)
- js如何在指定页面跳转到另一指定页面
- js设计模式之构造函数模式
- 关于Json不规则解析
- umeditor的jsp版本更改图片上传路径的方法
- javascript 为啥不用instanceof检测数组,这里有一个示例坑
- 将key名不带双引号的JSON字符串转换成JSON对象的方法