javascript-----2

一、day03

1)Boolean() 和!!other效果一样 同样是转换为布尔性

2)NaN和任何的值比较都不相等,即使和它本身的值相比较也不相等

3)循环结构(while,do-while,for)

a.循环的特征:循环条件,循环操作

b.循环使用的步骤:1、找出循环的条件和循环的操作

2、代入响应的循环语法结构中

3、判断能否退出循环,不能出现死循环

c.while

while(循环的条件){//循环的操作 循环体}

d.do-while循环

do{ //循环操作 } while(循环条件)

while与do-while的特点:while先判断后执行,do-while先执行一次,在判断。在初始条件不满足的情况下,while循环体不会被执行,do-while循环会被执行一次。while和do-while常用于循环次数不确定的情况下。

e)for循环

for(变量初始化 ;循环条件 ;变量更新){ //循环主体:循环操作}

执行流程:进入for循环结构

1、变量初始化操作,通常做循环变量的初始化

2、判断循环条件

3、如果循环条件为true,则执行循环体,如果循环条件为false,则跳转到第6步

4、执行变量更新的表达式,通常是做循环变量的更新

5、回到第二步继续

6、退出循环结构

for循环常用于循环次数确定的情况

程序出现逻辑错误时,通常使用断点调试查找错误;

a.设置断点

b.启动调试

c.单步执行

d.观察变量变化,如果和预期变化一致,回到第C步骤

e.如果变量变化和预期的变化不一致,则找到错误点,结束调试,修改错误

跳转语句:

break:跳出break语句所在的那个循环结构,如果循环还有为执行到的语句,不在执行

continue:结束continue所在循环的当前一次循环,还会继续判断条件执行下一次循环。

二、day04

函数的使用

函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

封装:隐藏内部实现细节,向外提供公共接口

定义函数

声明函数的语法结构:

function 函数名([形式参数列表]){

//函数主体:代码块锁需要实现功能的语句

//[return 表达式];

}

说明:在语法结构中,使用【】括起来的内容表示是可选内容

调用函数:对于函数来说,需要在声明后被调用到才会起作用,调用语法:函数名(【实际参数列表】);

函数调用时所传递的实际参数个数可以不等于形式参数个数,当实际参数个数少于形参个数时,形参中未接到数据的变量默认为Nudefined‘;如果实参个数大于形参个数,则默认忽略到多余的参数。

参数:形式参数(形参):即在函数声明时给定的参数,是函数在被调用时预期接收到的外部数据------变量的声明

实际参数(实参):即在函数调用时传递的参数。

返回值:return表达式,将函数执行的结果返回到函数外部区,以供函数调用者继续使用函数最终处理的结果

return返回值返回到函数调用处;

return只能返回最多一个值,在函数中遇到return语句,则结束函数执行,如果在return后还有没执行的语法,不在执行

跳转语句:break;continue;return表达式;

变量作用域:变量定义之后的作用范围

在函数中变量的作用域是函数级的,即在函数中任何地方定义的白能量,都在它所在的整个函数中可用,但当超出函数范围后,则不能在继续使用。

JS中没有块级作用域,只有函数级的作用域

变量声明的提升:(hoisting)--预编译/预解析

会将所有var变量的名称提升到函数顶部,只把声明提升到顶部,赋值还是保持在原位

递归的使用:

函数体的内部实现函数自身的调用。

菲布拉锲数列(兔子数列):1,1,2,3,,5,8.。。。。。

数列前两项固定为1,从第3项开始,每一项为前两项之和,求解。。第二十组共有多少只兔子?

事件和函数的关系:

onclick--点击

匿名函数:

function(【形参】){//函数体}

函数表达式

var fn=function([形式参数]){  //函数体  }

构造函数(了解)

作用:用于对象的创建,通常是使用new调用

function 构造函数名([形参]){  //函数主体 }

三、day05

数组:为了解决大量数据保存问题

数组概念:存储大量数据的一种存储结构

元素:数组中存储的数据

下标:数组中元素的编号(索引),编号从0开始,到(数组元素个数-1)

长度:数组中元素个数

数组的定义方式:

方式一:var arr=new Array();//创建一个空的数组对象[]

方式二:var arr=new Array(5);//创建一个拥有5个初始空间的数组对象

方式三:vararr=new Array("adfa","55","adfasf");//创建一个数组对象的同时初始化各元素的值,

方式四:var arr=["abc",“dafae”];//直接量,相当于是new Array(“”,“”)的简写方式

JS是弱类型语言,意味着在数组中的每个元素可以是不同的数据类型。但在编码过程中不推荐使用不同数据类型,即在使用数据组时应人为的保存在同一个数组中数据类型相同

常用的数组属性与方法:

调用的方法结构:

数组名.属性

数组名.方法名([实参])

属性:length--获取/设置数组中元素的个数

方法:

添加元素:(添加元素后会自动更新数组长度)

push(elem0,elem1,elem2...)----向元素的末尾添加元素,放回数组的长度

splice(index,0,elem0,elem1,elem3)-----在数组index下标出添加元素,在做添加操作时,第二个元素固定为0

unshift(elem0,elem1,elem2..)------向数组头部插入元素

删除元素:

pop()从尾部删除元素,删除最后一个元素,把所删除的元素组返回

splice(index,len)----从数组Index下标处删除len个元素。并返回删除的元素

shift()---从数组头部删除一个元素,并返回删除的元素。

排序:

reverse()---反转;

sort----排序;

链接:

concat()---链接一个或多个数组,不会改变现有数组的内容,仅仅会返回一个被链接过后的副本

join(spe)-----将数组中的元素用指定的符号链接成一个字符串,默认使用逗号,spe用来定义链接的符号

子数组元素的截取:

slice(start ,end)----从star(包含)t索引出开始,截取到end(不包含)索引结束处,省略第二个参数时默认截取到最后

迭代(遍历数组元素):最基本用到for循环来作遍历

for(var i=0;i<scores.length;i++){

sum+=score[i]; }

for-in

for(var 临时变量 in数组名){//循环体 数组名【临时变量】}

当使用for-in遍历迭代数组元素时,临时变量指代的是数组中元素的数字下标

for-in也可用于对对象的可被遍历的属性做迭代操作。

对象(object):

数组就是一个对象

语法:var stu={

name:"张三",

age:18

}

对象的调用==》 stu.name,stu.age

var persan={

name:"张三",

age:22,

sex:"male"

};

for(var attr in person){//在遍历对象时的临时变量指代的就是对象的对象属性名称

cossole.log(attr);//获得对象的属性名称

console.log(person[attr]);//获得对象中属性的属性值

}

排序算法

冒泡排序,选择排序,插入排序,快速排序,希尔排序......

冒泡排序:两两相邻的元素向比较,按照升序或降序排序,使用二重循环来实现,外层循环控制比较的轮数,内层循环控制每轮的比较次数

外层循环N-1,内层循环N-1-i    (N=array.length,循环变量初始值为0;)

sort()方法说明:不使用参数,实际按照数组中元素字符串的字符编码(unicode)顺序升序排序

如果需要按照特定的顺序排序,则提供比较函数

比较函数有两个参数a,b,这两个参数的意思是待比较的两个元素。如果实现升序排序,则返回值规则为return a-b升序,return b-a降序排序

如何实现随机顺序的排序? 

字符编码:ASCII,GBK,GB2312,BIG5,unicode(统一码,万国码)-->utf_8,utf-16;

基本类型和引用类型内存结构:

栈内保存的是数据和地址

堆内存里保存的是对象



arguments:类似于数组的对象,代表的是函数的参数列表,只在函数中用到,类似于数组的对象,可以使用到.length属性求解参数个数,但不能使用数组的方法可以使用arguments[index]的方式访问参数列表中的某个元素。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值