让 JavaScript 跑起来+函数

回想一下,你学过的编程语言是如何跑起来的。是不是经过编译器吭哧吭哧地编译成可执行文件然后再执行?

但是 JavaScript 比较特殊。JavaScript 既可以在浏览器中执行,也可以在服务端执行,还可以在移动App中执行,这一切其实归功于 JavaScript 引擎,比如 V8、JavaScriptCore。V8 引擎被应用于谷歌浏览器 Chrome 和 Node.js 。我们看一段官网关于V8的介绍:

V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++. It is used in Chrome and in Node.js, among others. It implements ECMAScript and WebAssembly, and runs on Windows 7 or later, macOS 10.12+, and Linux systems that use x64, IA-32, ARM, or MIPS processors. V8 can run standalone, or can be embedded into any C++ application.

大体意思就是说 V8 很牛逼,是一个开源项目,使用 C++ 实现了 JavaScript 和 WebAssembly,应用于 Windows、macOS、Linux 系统,Chrome 和 Node.js 都是采用它实现的。

我们使用 V8 主要用来执行 JavaScript 代码,先创建一个 js 文件 day1.js,代码如下:

// 创建一个变量 name
let name = '前端小课';
// 打印变量 name 的值
console.log(name);
// 定义一个函数,并把这个函数赋值给变量 call
let call = function () {
    console.log('call fun: ', name);
};
// 调用函数
call();

既然 Chrome 浏览器中集成了 V8,我们用它来执行一下上面这段 JavaScript 代码。在浏览器中执行 JavaScript,需要把 JavaScript 代码以文件或者源代码的方式嵌入到 script 标签中:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Day1</title>
</head>
<body>
    <script src="./day1.js"></script>
</body>
</html>

通过浏览器打开上面的 HTML 页面,JavaScript 代码便会执行。

不仅如此,通过 Node.js 也可以执行上面的 JavaScript 代码,能通过 node 执行 JavaScript 代码的前提是你已经安装了 Node.js,在前面的课程有关于 Node.js 的使用。在 day1.js 文件目录下输入命令 node + 文件名:

➜  node day1.js
前端小课
call fun:  前端小课

掌握了如何执行 JavaScript 代码,接下来我们需要看一看 JavaScript 中的函数。

JavaScript 通过 function 关键字定义函数,定义函数名为 sum 的函数:

function sum(a, b) {
    return a + b;
}

也可以通过函数表达式定义函数,下面定义的函数未指定名字:

let sub = function (a, b) {
    return a - b;
};

函数其实是「对象」,每一个函数实际上是 Function 的实例,函数有自己方法和属性。这一点与其它语言有很大的不同。打印 sub:

console.log(sub);
// [Function: sub]

通过 Function 创建一个函数,通过这种方式只是说明函数是 Function 的实例,不推荐使用。

let sub2 = new Function('a', 'b', 'return a - b');
// 2 
console.log(sub2(8, 6));

函数可以作为函数参数传递,也可以作为函数返回值。

function invoke(a, b, fun) {
    if (!a || !b) {
        return;
    }
    return fun(a, b);
}


let ret = invoke(5, 2, function (a, b) {
    return a + b;
});

函数有一个内部参数 arguments,它保存了函数调用时的所有参数,它不是一个数组。

function kill(a, b) {
    // { '0': 3, '1': 2 }
    console.log(arguments);
    return a * a - b;
}
kill(3, 2);

总结

本节内容主要讲了如何执行 JavaScript 以及 JavaScript 中函数的使用。在每一门编程语言中函数都扮演了非常重要的角色,JavaScript 也不例外,使用函数能做的事情还有很多比如闭包、面向对象。大家加油。

今天的打卡指令:

1.聊一聊 JavaScript 中的函数都能做哪些有意思的事情?

2.JavaScript 中的原型是谁的属性?

3.直接打卡。


推荐阅读:

被招安的 JavaScript ,取名为 ECMAScript

程序原本 — 推荐3本免费电子书

第四阶段 - 系统深入学习 JavaScript

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值