理解参数
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() 绝对值
版权声明:本文为博主原创文章,未经博主允许不得转载。