IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 全栈之路-前端(五)javascript基础知识4 -> 正文阅读

[JavaScript知识库]全栈之路-前端(五)javascript基础知识4

1、ES6新增了胖箭头函数,所谓的胖箭头,就是=>,任何使用原始函数表达式的地方都可以使用胖箭头函数,例如下边的写法是可以互相替换的:

let test1=function(){
	console.log("函数表达式");
}
test1();

let test2=()=>{
	console.log("箭头函数");
}
test2();

上边代码输出结果如下:

函数表达式
箭头函数

这种箭头函数可以一定程度简化代码,尤其在需要嵌入函数的场景下更加好用,这种写法和java8的lambda表达式写法几乎一样,例如只有一行逻辑时可以省略大括号,只有一个参数时可以省略小括号等。

2、js中函数名可以理解为是一个引用指针,同一个函数可以有多个函数名,例如:

let test3=()=>{
	console.log(new Date());
}
let test4=test3;
console.log("#######");
test3();
test4();
console.log("#######");
sum=null;
test3();
test4();
console.log("#######");
let test5=test3();
test5();

上述代码输出结果如下:

#######
Sun Nov 21 2021 22:40:48 GMT+0800 (中国标准时间)
Sun Nov 21 2021 22:40:48 GMT+0800 (中国标准时间)
#######
Sun Nov 21 2021 22:40:48 GMT+0800 (中国标准时间)
Sun Nov 21 2021 22:40:48 GMT+0800 (中国标准时间)
#######
tSun Nov 21 2021 22:40:48 GMT+0800 (中国标准时间)

这里其实test3、test4都指向了同一个函数,函数在使用的时候,加了小括号代表调用,不加小括号代表引用。

3、js中的函数没有重载的说法,同名函数只会是后定义的覆盖先定义的,例如:

function test6(name,age){
	console.log("first:"+name+":"+age);
}

function test6(name){
	console.log("second:"+name);
}

test6("tzx",31);
test6("tzx");

上述代码输出结果如下:

second:tzx
second:tzx

按照类似java的这种想法,希望的第一个调用应该是两个参数的方法,但其实都是调用的后边一个。
这里就有一个js中函数定义时参数定义问题,在js中实际不是一定要定义参数的,不管是否定义,实际都会以数组的方式获取到,通常写了只是更加直观方便,不管写不写,都可以使用arguments获取到,例如:

function test7(name){
	console.log("three:"+arguments[0]+":"+arguments[1]);
}
test7("tzx",31);

function test8(){
	console.log("four:");
	for(let i=0;i<arguments.length;i++){
		console.log(arguments[i]);
	}
}
test8("tzx",31,"java");

上边代码输出结果如下:

three:tzx:31
four:
tzx
31
java

4、函数声明和函数表达式是有区别的,函数声明会在执行任何函数代码之前被读取,而函数表达式则不会。例如:

test9();
function test9(){
	console.log("这是函数声明");
}

test10();
let test10=function (){
	console.log("这是函数表达式");
}

上述代码执行结果如下:

这是函数声明
Uncaught ReferenceError: Cannot access 'test10' before initialization
    at test3.html:67

可以看到在函数声明之前调用函数,是可以正常执行的,而在函数表达式之前调用函数则抛出异常。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:15:09  更:2021-11-22 12:16:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 0:55:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码