奔跑吧,我的JavaScript(2)

理解参数

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()  绝对值

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

时间: 2024-10-20 15:14:32

奔跑吧,我的JavaScript(2)的相关文章

奔跑吧,我的JavaScript(3)---JavaScript浏览器对象

Window对象 1.是BOM的核心,window对象指向当前的浏览器窗口,最高层对象之一. 2.所有JavaScript全局对象,函数以及变量均自动成为window对象成员 3.全局变量是window对象的属性 4.全局函数是window对象的方法 5.window尺寸 window.innerHright/window.innerWidth,浏览器窗口的内部高度/宽度 6.window方法 window.open()       打开新窗口 window.close()      关闭窗口

奔跑吧,我的JavaScript(1)

前端的重头戏来啦~~~~小伙伴们拿好小板凳,带好瓜子,看好戏咯 1.严格模式 为JavaScript定义了一种不同的解析与执行模型 在此模式下,JavaScript中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误. 'use strict' 只是一项编译指示,可以在程序开头声明,也可以放置到函数内部. 2.使用var操作符 var是一种关键字,可以保存任何值,未被初始化的值也会保存一个特殊值---undefined. 虽然省略var可以将变量设为全局变量,但在严格模式下,给未经

奔跑吧,我的JavaScript(3)

JavaScript异常捕获 1.异常:执行过程中,发生了错误,导致程序停止运行 2.异常抛出:将异常生成一个错误信息 3.异常捕获 try{ 发生异常的代码块 }catch(err){ 错误信息处理 } 举一个例子: try{ str = function demo(){ } }catch(err){ alert(err); } demo(); 其中,我们str未定义,demo()函数没有函数体,这样我们捕获到的错误会是什么? 当然我们也可以用throw语句,自己自定义一个错误. DOM 1.

Node.app让Nodejs平台在iOS和OS X系统上奔跑

首先呢,欢迎大家去查看同样内容的链接:http://www.livyfeel.com/nodeapp/. 因为那个平台我用的markdown语法,我也懒得修改了,就这样黏贴过来了. 这是一个惊人的恐怖消息! 首先个人来介绍一下本文出现的几个知识点: ####Node.js Node.js是一个平台,下面简称Node.它用来是前端广为使用的javascript语言,可以在服务器的后端进行奔跑.我们知道,如果一个前端没有CSS和javascript,仅仅依靠HTML来供用户查看页面,是多么撕心裂肺的

优秀的JavaScript模块是怎样炼成的

引言:如今的JavaScript已经是Web上最流行的语言,没有之一.从Github上的语言排行榜https://github.com/languages上即可看出,也是如今最为活跃的开源社区.随着Node的加入,JavaScript开枝散叶进入服务器领域,为这个语言榜的占比,也贡献了几分热度.尽管经历了Web2.0的洗礼 ,但在国内谈及开源,开源人士似乎都当这门语言并不存在,这也意味着国内的开发中坚阶层,并没有改变JavaScript以及前端过去二流形象的认识,也没意识到JavaScript如

HTML5 Canvas 奔跑的小狗

效果如上图,共六个图像切换,形成小狗动态奔跑效果.完整代码和图片请从  https://files.cnblogs.com/files/xiandedanteng/runningDog.rar 下载. 代码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/&g

javascript的document中的动态添加标签

document的高级篇中提供了节点操作的函数,具体包括:获取节点,改变节点,删除节点,替换节点,创建节点,添加节点,克隆节点等函数.我们可以利用这些函数动态改变html的节点. 1.JavaScript      ___| ———————————————————————————————————————————————————————— <script type="text/javascript"> function test1(){//对个节点的ID相同时候的情况 var

JavaScript学习思维导图路线

一.写在前面的话 转眼又是法定节假日—清明节.怀念过去的亲人,越发感到人生短暂,想做的事,一定要尽早做,想成为牛人, 就要付出比别人更加多的时间去学习,今天是假期的第一天,一大早就醒啦,像我等这种没有女朋友的屌丝, 只有来到公司看看书,看看技术博客,还有差不多两个月,毕业快两年了,来到上海的日子,节奏犹如奔跑的骏马一样,来去匆匆. 工作占据了生活的大部分时间,但是是快乐的,很享受这个过程!享受现在公司的一群人,热情,激情,有理想! javascript学习过,一直没有系统的总结,所以这篇算是ja

HTML5方向键控制会奔跑的马里奥大叔

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>HTML5会奔跑的马里奥大叔丨石家庄幼师|河北叉车|河北品牌策划公司</title> </head> <body> <div align="cen