JS学习总结(6)——函数/弹出框
函数定义
使用函数的主要优点:
代码重用——定义代码一次,并使用多次,使用不同的参数多次使用相同的代码,以产生不同的结果。
function name(someone) {
//函数中的代码
}
函数声明后不会立即执行,会在我们需要的时候调用到,要调用函数,从函数的名称开始,然后使用括号中的参数,一旦函数被定义, 可以根据需求进行一次或者多次调用。
function test(a, b) {
return a * b;
}
var c = test(4, 5) // 函数调用, 返回 20
document.write(c)
函数参数
函数显式参数与隐式参数
函数显式参数在函数定义时列出。
functionName(parameter1, parameter2, parameter3) {
// 代码
}
函数隐式参数(arguments)是函数调用时传递给函数真正的值。
function sum(){
return arguments[0]+arguments[1];
}
sum(3, 2);//5
- JavaScript 函数定义时参数没有指定数据类型。
- JavaScript 函数对隐藏参数(arguments)没有进行检测。
- JavaScript 函数对隐藏参数(arguments)的个数没有进行检测。
可以定义单个函数,并将不同的参数值(参数)传递给它。
function learn(class) {
alert("学习, " + class);
}
sayHello("数学");
sayHello("英语");
sayHello("物理");
多参数
可以通过逗号分隔来定义函数的多个参数。
function test(x, y) {
// 代码
}
如果使用缺少参数(少于声明数)调用函数,则将缺少的值为undefined,这表示未为变量赋值。
JavaScript 作用域
- 作用域是可访问变量的集合。
- 在 JavaScript 中, 对象和函数同样也是变量。
- 在 JavaScript 中,作用域为可访问变量,对象,函数的集合。
JavaScript 局部作用域
变量在函数内声明,变量为局部作用域,局部变量只能在函数内部访问。
function test() {
var class = "math";
// 函数内可调用 class 变量
}
因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。局部变量
的优先级高于同名的全局变量
。
var class = 'math';
function test() {
var class = "computer";
document.write(class); // class 值为computer
}
函数参数只在函数内起作用,是局部变量。
JavaScript 全局变量
变量在函数外定义,即为全局变量,全局变量有全局作用域,网页中所有脚本和函数均可使用。
JavaScript 变量生命周期
JavaScript 变量生命周期在它声明时初始化,局部变量在函数执行完毕后销毁,全局变量在页面关闭后销毁。
return 语句
return 语句在函数中是可选的。它用于从函数返回值,当JavaScript执行完 return 语句时,该函数停止执行,如果没有从函数返回任何东西,它将返回 undefined
。
弹出框
JavaScript提供三种类型的弹出框,Alert, Prompt, 和 Confirm。
Alert 警告框
当弹出警报框时,用户必须单击“确定”继续,警报功能采用单个参数,即弹出框中显示的文本,使用 alert 弹出框,将阻塞整个页面的运行,点击确定后才继续运行
alert("尝试一下\n警告框");
要在警告框中显示换行可以使用 \n :
Prompt 框
通常使用提示框来让用户输入一个值,当弹出提示框时,输入输入值后,用户将不得不单击“确定”或“取消”继续,如果用户单击确定,该框将返回输入值。如果用户单击取消,该框将返回null。
prompt()
方法有两个参数
- 第一个是要在文本框中显示的标签。
- 第二个是在文本框中显示的默认字符串(可选)。
var user = prompt("请输入你的颜值:");
alert(user);
Confirm 框
经常使用 confirm 让用户验证或接受某些内容。当弹出确认框时,用户必须单击“确定”或“取消”继续。
如果用户单击确定,该框将返回true
。
如果用户单击取消,该框将返回false
。
var result = confirm("你确定要放弃治疗?");
if (result == true) {
alert("祝你好运!");
} else {
alert("感谢你继续看我的博客!");
}
DLcd小趴菜: 你好,请问曲率不应该有正有负吗,为什么计算得到只有正值
D_Deam: 请问楼主有尝试过用IDL 调用 Flaash easy to use 处理GF6吗
Gray_World: 你好,有个问题我想请教一下。在相位解缠过程中,终端输入命令后总是报错:Unexpected or abnormal exit of child process 1405 请问该如何解决?
炸土豆要加香菜: 为什么我的大气校正完水体反射率曲线不正常
helloboy123s: 你好,我想问一下这里做的是地形高度还是地面高度呀?