码迷,mamicode.com
首页 > 编程语言 > 详细

奔跑吧,我的JavaScript(2)

时间:2015-08-25 11:58:33      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:对象   javascript   

理解参数

1.命令参数的个数不必与实际参数个数保持一致,但需要知道实际参数个数时,可以用arguments.length获得。
2.arguments对象可以与命令参数一起使用,甚至可以互换。
3.arguments对象的值始终与对应命令参数的值保持同步,但是值相同,并不表示内存空间也是相同的,这种影响是一种单向影响,只能是arguments影响命令参数。
4.严格模式下,arguments不能被赋值。
5.ECMAScript只存在值传递,而非引用传递。

基本类型和引用类型的值

基本类型表示一些简单的数据段,而引用类型表示多个值的对象
1.对于引用类型的值,可以动态的添加、删除、修改属性和方法。
2.基本类型复制,实际上是重新赋予了新值的过程,而引用类型复制,是被赋予了一个新指针引用同一对象。

传递参数

所有函数的参数都只能值传递,基本类型传递参数,实际上就是值复制;引用类型传递参数,实际上就是传递地址。

执行环境及作用域

定义了变量或函数的一个作用范围,有权访问其他数据,决定了它们各自的行为(全局环境、函数环境)。
1.变量的作用域链,保证了对执行环境有权访问的变量和函数的有序访问。
2.内部可以访问外部,但外部不可以访问内部。
3.没有块级作用域,一般其他语言由花括号{}包围起来的块级代码,也算一个作用域,而ECMAScript不会这样认为。
4.局部会代替父环境中的标示符。

垃圾收集

具有自动垃圾收集机制,也就是找出不再继续使用的变量,释放其内存。
收集策略
1.标记清除,标记变量,记录他的执行流程
2.引用计数,引用次数为0时,先回收内存后释放(Ps.容易陷入循环引用中,导致内存永远不能回收,严重时会引起内存泄漏)。

管理内存

为了节约系统内存,为执行中代码保存必要数据,一旦数据不再有用,应设为null,称为解除引用。
所谓解除引用,也就是让值脱离执行环境,以便垃圾收集器可以回收。

引用类型

也就是一种数据结构,类似于C++中的类,但却不具备类所支持的接口,也被称为对象定义。
var person = new object();
其中 person称为对象的实例
object()为构造函数
1.Object类型,最常用,然而并没有什么实际功能
2.Array类型,数组的每一项可以保存不同值,大小也可以动态调整;数组的长度始终为最后一项+1,(从0开始计数)

JavaScript函数

定义函数
function 函数名(){
            函数体;}
对大小写敏感
函数实际上是对象,函数是Function类型的实例,函数名是指针
没有重载机制(深入理解)
如果同时创造两个同名函数,则会看到后一个函数会覆盖前一个
<span style="font-size:14px;">function addnumber(num){
return num+100;
}
function addnumber(num){
return num+200;
}
alert(addnumber(100));
</span>
想一下,结果是多少?200?300?
作为值得函数
函数名本身为变量,所以可以作为值来用。
function callSomeFunction(someFunction,someArguments){
return someFunction(someArguments);
}

函数声明与函数表达式

解析器会率先读取函数声明,并在执行代码之前可用;函数表达式只有在执行所在所在代码行才能被解释执行。

内置对象

所有的事物,包括字符串,数值,数组等,并带有属性和方法
允许自定义对象
(1)定义并创建对象实例
(2)利用函数来创建
people = new Object();                         
people.name = "L";
people.age = "20";
 people ={
name = "L";
age = 20;
}
function people(name,age){
this.name = name;
this,age = age;
}
son = new people();
String 对象
方法说明

函数
返回值
查找字符串
indexOf()
返回字符串所在的索引位置
内容匹配
match()
匹配不成功,返回null
替换内容
replace()
新的字符串
转换大小写
toUpperCase()/toLowerCase()
新的字符串
转换成数组
split()


Array对象
使用单独的变量名来存储一系列的值
数组访问,指定数组名以及索引号码,访问指定元素
concat()  合并数组
sort()  排序
push()  末尾增加元素
revese() 数组反转

Math对象
执行常见的算数任务
round()    四舍五入
random()   返回0~1之间的随机数
随机数的值=Math.floor(Math.random()*可能值的总数+第一个可能值);
如果从一个非数值数组中找随机数,用到一个函数selectForm(开始值,结束值);
max()  最高值
min()  最低值
abs()  绝对值



版权声明:本文为博主原创文章,未经博主允许不得转载。

奔跑吧,我的JavaScript(2)

标签:对象   javascript   

原文地址:http://blog.csdn.net/u011318165/article/details/47865271

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!