当前位置: 首页 > news >正文

JavaScript的进阶学习--函数和基本对象的解析

        在上一篇博客中我们对JavaScript的基础内容进行了梳理讲解,帮助大家实现快速入门,感兴趣的朋友可以自己去查看上一篇博客JavaScript的引入方式和基础语法的快速入门与学习,在本篇博客中我们将进一步讲解有关于JavaScript中有关于函数和对象的内容。

一.函数

        函数的作用可以类比Java中的方法,是被设计为执行特定任务的代码块。在 JavaScript 里,函数能像其他数据类型一样被使用,比如赋值给变量、作为参数传递、作为返回值等。

1.函数定义

函数声明

        函数声明使用 function 关键字,会进行提升,即在代码执行前就被加载到作用域中。由于JS是弱类型语言,所以在定义函数时参数不需要类型,返回值也不要类型,在返回时在函数内部直接使用return返回即可。

//基本语法
function 函数名(参数1, 参数2) {//要执行的代码;
}
//示例
function add(a, b) {return a + b;
}

函数表达式

        函数表达式将函数赋值给一个变量,不会进行提升,function关键字后不在需要加函数的名字。

const subtract = function(a, b) {return a - b;
};

箭头函数

        箭头函数是 ES6 引入的简洁语法,没有自己的 thisarguments 等,适合简单的回调函数。

const multiply = (a, b) => a * b;
// 当只有一个参数时,括号可省略
const square = num => num * num;
// 当函数体有多行代码时,需要用花括号包裹
const greet = (name) => {const message = `Hello, ${name}!`;return message;
};

2.函数调用

定义好函数后,可通过函数名加括号来调用函数,若有参数则在括号内传入。

// 调用函数声明定义的函数
const result1 = add(3, 5); 
console.log(result1); // 输出: 8// 调用函数表达式定义的函数
const result2 = subtract(8, 3); 
console.log(result2); // 输出: 5// 调用箭头函数
const result3 = multiply(4, 6); 
console.log(result3); // 输出: 24

3.函数参数

普通参数

函数可以有多个参数,调用时按顺序传入对应的值。

function fullName(firstName, lastName) {return `${firstName} ${lastName}`;
}
const name = fullName('John', 'Doe');
console.log(name); // 输出: John Doe
默认参数

ES6 允许为函数参数设置默认值,当调用时未传入该参数,就使用默认值。

function greet(name = 'Guest') {return `Hello, ${name}!`;
}
console.log(greet()); // 输出: Hello, Guest!
console.log(greet('Alice')); // 输出: Hello, Alice!
剩余参数

剩余参数使用 ... 语法,可将多个参数收集到一个数组中。

function sum(...numbers) {return numbers.reduce((total, num) => total + num, 0);
}
console.log(sum(1, 2, 3, 4)); // 输出: 10

4.函数返回值

函数可以使用 return 语句返回一个值,若没有 return 语句,函数默认返回 undefined。

function getMessage() {return 'This is a message.';
}
const message = getMessage();
console.log(message); // 输出: This is a message.function noReturn() {// 没有 return 语句
}
const result = noReturn();
console.log(result); // 输出: undefined

二.JavaScript中的对象

        在 JavaScript 里,对象是一种非常重要的数据类型,用于存储键值对的集合。对象是一种复合数据类型,用于存储多个相关数据和功能,是该语言的核心特性之一。

1.对象创建

1.Array对象

JavaScript中Array对象用于定义数组:具有长度可变,类型可变的特点。  

基本使用

对象定义语法:

//语法一:
var 变量名 = new Array(元素列表);
//语法二:
var 变量名 = [元素列表];

对象定义示例: 

//语法一:
var arr = new Array(1,2,3,4);
//语法二:
var arr = [1,2,3,4];

访问: 基本和Java一致

//语法
arr[索引] = 值;//示例
arr[10] = "hello";

length属性

length属性:用于快速获取array对象的长度

//定义一个数组
var arr = [1,2,3,4,5];// 数组长度
alert(arr.length);//输出5

常用方法

forEach():用于遍历数组中每一个有值的元素,并调用一次传入的函数

arr.forEach(function(item,index,arr) {alert(item);
})//item:当前正在处理的数组元素。
//index(可选):当前正在处理的元素的索引。
//array(可选):调用 forEach() 方法的数组。

上边的代码和for循环的区别在于,for循环还会遍历无值的元素 

push():将新元素添加到数组的末尾,并返回新的长度

//一次添加一个
arr.push(1000);
alert(arr);//一次添加多个
arr.push(1,2,3,4);
alert(arr);const fruits = ['苹果', '香蕉'];
const newLength = fruits.push('橙子', '草莓');
console.log(fruits); // 输出: ['苹果', '香蕉', '橙子', '草莓']
console.log(newLength); // 输出: 4

splice():方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。

语法简介:

  • start:指定修改的开始位置(从 0 计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位。
  • deleteCount(可选):整数,表示要移除的数组元素的个数。如果 deleteCount 被省略,或者它的值大于等于 array.length - start,则从 start 位置开始删除数组的所有元素。如果 deleteCount 是 0 或者负数,则不移除元素。
  • item1, item2, ...(可选):要添加进数组的元素,从 start 位置开始。如果不指定,则 splice() 将只删除数组元素。
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

代码示例:

const colors = ['红色', '蓝色', '绿色', '黄色'];// 从索引 2 开始删除 1 个元素
const removed = colors.splice(2, 1);
console.log(colors); // 输出: ['红色', '蓝色', '黄色']
console.log(removed); // 输出: ['绿色']// 从索引 1 开始删除 0 个元素,并插入 '紫色' 和 '粉色'
colors.splice(1, 0, '紫色', '粉色');
console.log(colors); // 输出: ['红色', '紫色', '粉色', '蓝色', '黄色']

2.String对象

 基本使用

对象定义语法:

//语法一:
var 变量名 = new String("...");
//语法二:
var 变量名 = "...";

对象定义示例: 

//语法一:
var str = new String("Hello String");
//语法二:
var str = "Hello String";

length属性

length属性:用于快速获取String对象的长度

//定义一个数组
var arr = [1,2,3,4,5];// 数组长度
alert(arr.length);//输出5

常用方法

charAt():返回在指定位置的字符

const str = 'Hello, World!';
console.log(str.charAt(1)); // 输出: e
console.log(str.charAt(100)); // 输出: 空字符串

索引从下标0开始。 

indexOf(): 方法用于在字符串中查找指定子字符串第一次出现的位置。如果找到匹配项,则返回该子字符串的起始索引;如果未找到,则返回 -1。

语法:

str.indexOf(searchValue [, fromIndex])
  • searchValue:要查找的子字符串。
  • fromIndex(可选):开始查找的索引位置,默认值为 0。

代码示例:

const str = 'Hello, World!';
console.log(str.indexOf('o')); // 输出: 4
console.log(str.indexOf('o', 5)); // 输出: 8
console.log(str.indexOf('xyz')); // 输出: -1

trim():会从一个字符串的两端删除空白字符。空白字符包括空格、制表符、换行符等。

const str = '   Hello, World!   ';
console.log(str.trim()); // 输出: Hello, World!

substring():提取字符串中两个指定的索引号之间的字符

语法:

str.substring(indexStart [, indexEnd])
  • indexStart:必需,要提取的子字符串的起始索引。
  • indexEnd(可选):要提取的子字符串的结束索引(不包含该位置的字符)。如果省略该参数,则提取到字符串末尾。

代码示例:

const str = 'Hello, World!';
console.log(str.substring(0, 5)); // 输出: Hello
console.log(str.substring(7)); // 输出: World!
http://www.dtcms.com/a/293031.html

相关文章:

  • 16-MSTP
  • 加速度计输出值的正负号与坐标系正方向相反
  • 基于 Agent 的股票分析工具
  • Windows Server 设置MySQL自动备份任务(每日凌晨2点执行)
  • 洛谷刷题7..22
  • 贪心算法Day3学习心得
  • VBScript 拖拽文件显示路径及特殊字符处理
  • gitlab私服搭建
  • 根据数据,判断神经网络所需的最小参数量
  • 如何搭建appium工具环境?
  • 嵌入式学习-土堆目标检测(2)-day26
  • 浏览器解码顺序xss
  • UE5 UI WarpBox 包裹框
  • Leetcode力扣解题记录--第41题(原地哈希)
  • 【Pytest】从配置到固件的使用指南
  • 【工作常用】C++/QT插件编程思想——即插即用
  • Elasticsearch 学习笔记
  • 从零开始学习 NumPy 库:核心功能与实践指南
  • 应用层攻防启示录:HTTP/HTTPS攻击的精准拦截之道
  • AI视频-剧本篇学习笔记
  • 《AR眼镜上声学的应用与挑战》
  • pytorch中的torch.compile是如何加速vLLM大模型推理的?
  • 信息学奥赛一本通 1553:【例 2】暗的连锁
  • 跨境企业破局国际市场:海外媒体发稿如何为品牌声誉赋能?
  • 蔚来汽车视觉算法面试30问全景精解
  • 原型链污染
  • 【Phenix】使用教程1|使用phenix.map_model_cc进行结构验证|整体结构CC计算/单个氨基酸的CC
  • Windows入侵排查入门实例
  • 前端_CSS复习
  • 基于 NumPy 的高效数值计算技术解析与实践指引