定义一个函数
-
定义方式一
绝对值函数
function abs(x){
if(x>=0){
return x;
}else{
return -x;//return 代表函数结束
}
}
-
定义方式二
var abs = function(x){
if(x>=0){
return x;
}else{
return -x;//return 代表函数结束
}
}
function(x)是一个匿名函数,但是可以把结果赋值给abs,tongguoabs调用函数
调用函数
abs(10) //10
abs(-10) //10
参数问题:javascript可以传任意个函数,也可以不传参
var abs = function(x){
//手动抛出异常
if(typeof x!='number'){
throw 'not a number'
}
if(x>=0){
return x;
}else{
return -x;//return 代表函数结束
}
}
-
arguments(数组)
是js免费赠送的关键字,可以很方便的找到最大的一个参数的值:
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i, max = arguments[0];
if(arguments.length < 2) return max;
for (i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
变量的作用域
在javascrpit中,var定义变量实际是有作用域的,
假设在函数体中声明,则在函数体外不可以使用(闭包)
function ar(){
var x = 1;
x=x+1;
}
x = x + 2;//报错
如果两个函数使用了相同的函数名,只要不在一个函数体内就可用
方法
定义方法
方法就是把函数放在对象里面,只有:属性+方法
var ar = {
name:'ar';
birth: 2000;
age:function(){
var now = new Date().getFullYear();
return now-this.birth;
}
}
//属性
ar.name
//方法,必须要带括号
ar.age()
this代表,无指向性的,默认只想调用它的那个对象
function getAge(){
var now = new Date().getFullYear();
return now-this.birth;
}
var ar = {
name:'ar';
birth: 2000;
age:getAge
}
//ar.age() ke
//getAge() NaN window
call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。
function myFunction(a, b) {
return a * b;
}
myObject = myFunction.call(myObject, 10, 2); // 返回 20
function myFunction(a, b) {
return a * b;
}
myArray = [10, 2];
myObject = myFunction.apply(myObject, myArray); // 返回 20
-
apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。
-
在 JavaScript 严格模式(strict mode)下, 在调用函数时第一个参数会成为 this 的值, 即使该参数不是一个对象。
-
在 JavaScript 非严格模式(non-strict mode)下, 如果第一个参数的值是 null 或 undefined, 它将使用全局对象替代。
箭头函数(没看懂)
ES6新增,好像是一个可以简便的函数
闭包
JavaScript 变量可以是局部变量或全局变量。
私有变量可以用到闭包。
function myFunction() {
var a = 4;
return a * a;
}//函数可以访问有函数内部定义的变量
var a = 4;
function myFunction() {
return a * a;
}//访问外部定义的变量
==var a = 4; function myFunction() { return a * a; }==
JavaScript 内嵌函数
所有函数都能访问全局变量。
在 JavaScript 中,所有函数都能访问它们上一层的作用域。
JavaScript 支持嵌套函数。嵌套函数可以访问上一层的函数变量。
该实例中,内嵌函数 plus() 可以访问父函数的 counter 变量:
function add() {
var counter = 0;
function plus() {counter += 1;}
plus();
return counter;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具