批改状态:合格
老师批语:
js的引入方式有3种,分别是行内脚本、内部脚本、外部脚本。
在实现简单操作时可以把脚本直接写在html标签行内实现。
<button onclick="alert('大家晚上好!');">Click</button>
使用script标签直接把js脚本写在html文档内,供本文档直接调用。
<button onclick="lookme()">Click</button><script>function lookme() {alert("HI 大家晚上好!");}</script>
把js脚本单独写进一个.js文件,在需要使用它的html文档中引用即可,同时也实现了多文档共享js脚本。
<button onclick="lookme()">Click</button><script src="lookme.js"></script>
变量在js内实现数据的传递与共享。使用let关键字声明,变量的值可以修改更新。变量名字通常使用驼峰式命名方式(组合词语的第二个单词首字母大写)。
// 声明let userName;console.log(userName); // undefined// 第一次赋值: 初始化userName = "刘一手";console.log(userName);// 第二次赋值: 更新,修改userName = "王二丫";console.log(userName);// 删除变量:赋值nulluserName = null;console.log(userName);// 推荐声明时直接初始化let price = 99;price = 199;
常量的数据是保持不变的。使用const关键字声明,因为不能更改,须声明时直接赋值。名字通常全大写,多个单词之间使用下划线。
// 因为常量不能被更新,所以声明时必须赋值(初始化)const GENDER = "female";console.log(GENDER);
可由字母、数字、下划线、$组成,并且禁止数字开头, (违规写法如123abc, abc@123),严格区分大小写。
函数是一个可重用的代码块,用来完成某个特定功能。每当需要反复执行一段代码时,可以利用函数来避免重复书写相同代码。
使用function关键字来声明函数,为函数命名一个名字,便于反复调用。
//每个函数都要有返回结果,函数都是单值返回// 声明function getName(name) {return "welcome to: " + name;}// 调用,按名console.log(getName('大牛'));// 函数允许重写function getName(name) {return "欢迎: " + name;}// 返回多个值,使用数组或对象function getUser() {return [10, "admin", "admin@qq.com"];}function getUser() {return { id: 10, username: "admin", email: "admin@qq.com" };}console.table(getUser());
匿名函数就是将一个函数的声明做为值赋值给一个变量或常量,没有命名,通常用这个变量或常量来引用这个函数。先声明再引用。
let sum =function (a,b) {return a + b;};//通过变量来引用console.log(sum(1,6));
使用函数做为参数或者将函数做为返回的函数,为高阶函数。
//例1function demo(f) {return function () {return "abc";};}//例2let sum = function (a, b) {return function (c, d) {return a + b + c + d;};};let f1 = sum(1, 2);// f1是一个函数console.log(typeof f1);console.log(f1(3, 4));
柯里化函数,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数(把接受参数打散,一个函数接受一个)。 在有些参数需要复用或者需要延迟运行时会用到。
// 柯里化sum = function (a) {return function (b) {return function (c) {return function (d) {return a + b + c + d;};};};};let res = sum(1)(2)(3)(4); //这种方法可以直接输入多个参数console.log("res =", res);
函数的参数分为:必选参数,默认参数,归并参数。
在调用函数时必须要输入的参数。
// 必选参数let sum = function (a, b) {return a + b;};console.log(sum(1, 2));
函数声明时为其中参数设置了默认值,在调用时可以不输入该参数。
sum = function (a, b = 10) {return a + b; //参数b声明时已经赋值,为默认值};console.log(sum(1));console.log(sum(1, 15));
rest语法,将所有参数压到一个数组中来简化参数的获取过程。
//例1let sum = function (...arr) {let t = 0;for (let i = 0; i < arr.length; i++) {t += arr[i];}return t;};console.log(sum(1, 2, 3, 4, 5, 6, 7));//例2 ,简化例1写法let sum = function (...arr) {// 使用reduce()简化return arr.reduce((p, c) => p + c);};console.log(sum(1, 2, 3, 4, 5, 6, 7));
匿名函数,可以使用箭头函数来简化它。
let sum = function (a, b) {return a + b;};// 匿名函数,可以使用箭头函数来简化它sum = (a, b) => {return a + b;};console.log(sum(10, 20));// 如果箭头函数的代码体只有一行语句,可以删除大括号,自带return 功能sum = (a, b) => a + b;// 如果只有一个参数,连参数列表的圆括号 都可以删除let tips = (name) => console.log("欢迎: " + name);tips("小马");// 如果函数中要使用到this,就不要用箭头函数,不能当构造函数用
立即执行函数: 声明调用二合一, 声明后直接执行。语法格式为(函数)(参数)。
(function (a, b) {console.log(a + b);})(100, 600);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号