上一篇笔记《javascript基础入门(二)》里,我主要写了javascript的数据类型之间的转换,操作符(算数运算,模运算,递增/递减运算,关系运算,逻辑运算,位移,赋值运算,三目运算)等。
这一期分享javascript的重点,函数、作用域和程序结构,笔记内容都是精华,一定要收藏!
函数
函数概述
函数:封装一项专门任务的步骤清单的代码段, 并起一个名字
何时定义方法?只要发现一段代码重复使用,就封装为方法
语法:
调用:方法名(参数列表)
参数:
方法内独有的变量。接收传入数据,在方法内处理。
参数让方法变灵活!
方法参数和外部定义了哪些变量没有任何关系。
参数何时被创建?只有方法被调用时才自动创建。
返回值:
方法执行后,由方法返回的一个数据。
定义返回值:不用再声明变量,直接用return 值!
为什么定义返回值:因为调用方法的人需要明确的返回结果。返回值主要给调用者使用。
return:
本意退出方法!退出同时,可返回数据!
可以在任何需要的地方,调用方法执行;
带返回值的方法,使用时,等效于直接使用返回值数据
备注说明:
方法返回值:根据方法调用者的需要!如果方法调用者需要明确返回一个结果,就定义返回值!否则,可以不定义返回值!
有返回值的方法,可以当做1个值用!
何时必须用变量接住?方法的返回值,后续程序可能反复使用!
例子:
经典题:定义一个可以接收3个参数的方法,该方法返回这3个数中最大值;调用此方法。
作用域
作用域:一个变量的可用范围!
全局作用域:直接声明在全局作用域中的变量,叫全局变量
(今后只要希望所有作用域共用的变量都要声明在全局作用域)
window对象:是整个网页的全局
局部(函数)作用域:声明在方法内部的变量或方法的参数变量
值传递:将一个变量的值赋值给另一个变量,其实将原变量中的值,复制一份给新变量。js中一切赋值都是值传递!
对未声明的变量赋值:js会自动在全局创建该变量!
函数作用域和变量作用域完全一样!
函数作用域在调用方法时创建,方法执行完立刻销毁!
练习题:
全局函数
encodeURI() 函数和decodeURI() 函数
encodeURI:将url中的非法字符转为单字节符号——编码
decodeURI:将encodeURI转后的字符串,转换回原文——解码
unicode编码:每个字符2字节
utf-8编码:字母、数字单字节 汉字3字节
例子1:编码
例子2:解码
encodeURIComponent() 函数
decodeURIComponent() 函数
encodeURIComponent:函数可把字符串作为 URI 组件进行编码,既能对多字节非法字符编码,又能对单字节非法字符编码——今后只要使用encodeURIComponent()就够了
decodeURIComponent:可对 encodeURIComponent() 函数编码的 URI 进行解码。收到编码后的字符串后,都要先解码,再处理。
例子:
程序结构
程序结构:2种
分支
循环
分支结构
概念:程序运行过程中,可以根据不同的条件,执行不同的任务。
分支结构:
if...结构:1件事,要么做,要么不做
if...else...结构:2件事,二选一执行
else if结构:多件事,多选一执行
语法:
如果前一个条件己经满足,则后续else if不再执行!
注意:
分支结构中的条件,可以不是逻辑表达式!如果不是,js会自动转换为Boolean类型:
0, null, undefined, NaN, "", 0.0 都转为false
其余,都转为true!
例子:else if 的用法。查询成绩的级别
switch...case...语句:多条分支,根据条件判断,选择执行
语法:
运行机制:如果找到与表达式值匹配的case,不但执行当前case下的代码,而且之后所有代码都被触发!
break:退出当前结构;
多个条件共用同一套执行逻辑时,不加break!
注意:
switch ...case中,表达式属于===严格相等
例子:
循环结构
概念:
程序反复执行同一段代码段。遇到结束条件,会结束执行。
没有循环结束条件,永远循环执行——死循环
循环三要素:
循环条件:循环继续执行的条件。一旦循环条件不满足,循环立刻退出!
循环变量:用于循环条件中做判断的变量。循环变量都会向循环退出的趋势变化(不满足循环条件的趋势)——循环计数器
循环体:每次循环要做的事情
while循环:当满足条件时,就继续循环做...事
语法:
break:退出当前结构
while中何时用break:循环条件不满足之前,希望强行退出循环。
如何使用break?可以放在任何需要退出循环的位置。
干货小知识:
随机数:Math.random():0<=n<1
任意min--max之间取随机数
公式:parseInt(Math.random()*(max-min+1)+min)
例如:求0-10之间数
0<=n<1
0<=n*11<11
0<=parseInt(n*11)<11
/未完待续 下期再会.
欢迎关注微信公众号【一文插画】,回复【资源】即可获得学习资料~ “领干货” 一起提升技能!未经授权,不得转载。