函数
函数:封装一个专门任务的步骤清单的代码段
何时使用?只要定义一个专门的任务,要封装一个函数
使用函数: 声明 定义 使用
声明提前:在程序执行前或函数被调用前,将var声明的变量和function声明的函数提前到当前作用域的顶部集中创建
强调:仅声明提前,赋值留在原地
如何声明并定义一个函数:
function 函数名(【函数变量列表】){
函数体:包含任务的步骤清单(代码段)
【return 返回值】
}
备注:【】表示此项可以没有
如何调用函数:【var 返回值=】 函数名(【参数值列表】)
函数只有调用时才执行!
反复调用,会反复执行相同的操作!
******************************************************************************************
函数的参数:专门接受传入函数内的数据变量
定义参数变量: function 函数名(变量1,变量2,····)
传递参数值: 调用时:函数名(值1,值2,····)
强调:一般值的个数和顺序,应与声明时的参数列表一致
返回值:函数仅负责返回值,不负责保存返回值。
保存返回值则需:var 变量=函数名();
函数调用过程
变量作用域:一个变量的可用范围
JavaScript的2种作用域:
1.全局作用域:一个变量可以在程序的任何位置被访问。
2.函数作用域:一变量仅能在函数调用时,内部被访问。
JavaScript的2种变量:
全局变量:定义在全局作用域中的变量
2种:1.直接在任何函数外声明的变量,全局变量都属于window—全局对象
2.无论在任何位置,为从未声明过的变量赋值时 // 自动在全局创建同名全局变量!
局部变量:定义在函数作用域中的变量
2种:1.在函数定义内部声明的变量
2.参数变量天生就是局部变量
函数实际是引用类型的对象;函数名其实是指向函数对象的变量.
调用过程中
如果局部有,就不用全局变量
如果局部没有,才用全局的
如果全局也没有,则报错.
调用结束后,释放所有局部变量
全局函数
全局函数:ES标准中已经定义好的,开发者可以直接调用的函数
全局变量encodeURL(),与decodeURL()
BOM:
alert();
prompt();
编码/解码:
编码:将URL中的非法字符,改为合法字符表示
解码:将URL中的非法字符编码后的内容,恢复为原文
https://```wd=%E4%BD%8D 位
utf-8个数编码 汉字占3字符
URL中不允许出现多字节字符(比如:汉字)
解决:则把多字节字符转化为单字节字符
var url="http://www.baidu.com/s?word=";
var input=prompt("百度一下");
input =encodeURIComponent(input);
alert("向服务器发送请求:"+url+input);//模拟向服务器端编码
alert("服务器端解码后:"+decodeURIComponent(input));//模拟服务器端解码
全局变量eval()
var input=prompt("输入一个算式:");//输入为文本形式转化为number
alert(eval(input));