JavaWeb-JavaScropt入门(二)
创始人
2024-05-24 03:45:27
0

目录

  • 函数
    • 语法
    • 传参
    • 函数表达式
      • 作用域
  • 对象
    • 使用 字面量 创建对象 [常用]
    • 使用 new Object 创建对象
    • 使用 构造函数 创建对象

函数

语法

function 函数名(形参列表) {函数体return 返回值;
}

那么有了创建函数,肯定有调用函数:

// 函数调用
函数名(实参列表)           // 不考虑返回值
返回值 = 函数名(实参列表)   // 考虑返回值
	

在这里插入图片描述
先写调用再写定义也是可以的!

传参

JS中函数传入的参数可以是任意的,只要支持内部逻辑不论什么类型都是可以作为参数。

			function add(x, y) {return x + y;}let result = add(10, 20);console.log(result);result = add('hello', 'world');console.log(result);result = add('hello', '10');console.log(result);

在这里插入图片描述
正因为有这样的特性,JS天然就是不需要“泛型”/“重载”这样的语法的。

参数个数
一般写代码的时候,都需要调用时候传入的实参,个数和形参匹配
但是实际上,JS并没有在语法上做出这样的限制~
如果实参和形参个数不一样,也不是完全不可以的

// 最多可以支持 7 个参数的相加function add(a, b, c, d, e, f, g) {return a + b + c + d + e + f + g;}console.log(add(10, 20));console.log(add(10, 20, 30));console.log(add(10, 20, 30, 40));console.log('hello', 60, 70);

在这里插入图片描述

因为这里我们调用函数的时候只传了2个数字参数/3个数字参数,没被传参传到的形参就是undefined,返回结果就是一个NaN;如果把字符串写在前面就是一个拼接的效果,我们传了3个参数,最后两个形参是未定义的,所以就是undefined。

如果实参比形参多,多出来的实参,就相当于没了。

函数表达式

在JS里,函数是“一等公民”,函数就像一个普通的变量一样,可以被赋值给其他的变量,也可以作为另一个函数的参数,还可以作为另一个函数的返回值(函数和普通变量,并没有本质区别,但是函数这样的变量相比于普通变量多了个功能,可调用)

var add = function() {var sum = 0;for (var i = 0; i < arguments.length; i++) {sum += arguments[i];}return sum;
}
console.log(add(10, 20));            // 30console.log(add(1, 2, 3, 4));        // 10console.log(typeof add);             // function

在这里插入图片描述

作用域

某个标识符名字在代码中的有效范围.
在 ES6 标准之前, 作用域主要分成两个

全局作用域: 在整个 script 标签中, 或者单独的 js 文件中生效. 
局部作用域/函数作用域: 在函数内部生效. 
// 全局变量var num = 10;console.log(num);function test() {// 局部变量var num = 20;console.log(num);}function test2() {// 局部变量var num = 30;console.log(num);}test();test2();console.log(num);

在这里插入图片描述

对象

在 JS 中, 字符串, 数值, 数组, 函数都是对象.
每个对象中包含若干的属性和方法.
属性: 事物的特征.
方法: 事物的行为

使用 字面量 创建对象 [常用]

使用 { } 创建对象

var a = {};  // 创建了一个空的对象var student = {name: '蔡徐坤',height: 175,weight: 170,sayHello: function() {console.log("hello");}
};
使用 { } 创建对象
属性和方法使用键值对的形式来组织. 
键值对之间使用 , 分割. 最后一个属性后面的 , 可有可无
键和值之间使用 : 分割. 
方法的值是一个匿名函数. 

使用对象的属性和方法:

// 1. 使用 . 成员访问运算符来访问属性 `.` 可以理解成 "的"
console.log(student.name);
// 2. 使用 [ ] 访问属性, 此时属性需要加上引号
console.log(student['height']);
// 3. 调用方法, 别忘记加上 () 
student.sayHello();

使用 new Object 创建对象

var student = new Object(); // 和创建数组类似
student.name = "蔡徐坤";
student.height = 175;
student['weight'] = 170;
student.sayHello = function () {console.log("hello");
}
console.log(student.name);
console.log(student['weight']);
student.sayHello();

注意, 使用 { } 创建的对象也可以随时使用 student.name = “蔡徐坤”; 这样的方式来新增属性.

使用 构造函数 创建对象

前面的创建对象方式只能创建一个对象. 而使用构造函数可以很方便 的创建 多个对象.
此时写起来就比较麻烦. 使用构造函数可以把相同的属性和方法的创建提取出来, 简化开发过程.所以这里我们就不介绍了!

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...