一、js引入方式

js的引入方式有3种,分别是行内脚本内部脚本外部脚本

1、行内脚本:

在实现简单操作时可以把脚本直接写在html标签行内实现。

  1. <button onclick="alert('大家晚上好!');">Click</button>

2、内部脚本:

使用script标签直接把js脚本写在html文档内,供本文档直接调用。

  1. <button onclick="lookme()">Click</button>
  2. <script>
  3. function lookme() {
  4. alert("HI 大家晚上好!");
  5. }
  6. </script>

3、外部脚本:

把js脚本单独写进一个.js文件,在需要使用它的html文档中引用即可,同时也实现了多文档共享js脚本。

  1. <button onclick="lookme()">Click</button>
  2. <script src="lookme.js"></script>

二、变量与常量

1、变量:

变量在js内实现数据的传递与共享。使用let关键字声明,变量的值可以修改更新。变量名字通常使用驼峰式命名方式(组合词语的第二个单词首字母大写)。

  1. // 声明
  2. let userName;
  3. console.log(userName); // undefined
  4. // 第一次赋值: 初始化
  5. userName = "刘一手";
  6. console.log(userName);
  7. // 第二次赋值: 更新,修改
  8. userName = "王二丫";
  9. console.log(userName);
  10. // 删除变量:赋值null
  11. userName = null;
  12. console.log(userName);
  13. // 推荐声明时直接初始化
  14. let price = 99;
  15. price = 199;

2、常量:

常量的数据是保持不变的。使用const关键字声明,因为不能更改,须声明时直接赋值。名字通常全大写,多个单词之间使用下划线。

  1. // 因为常量不能被更新,所以声明时必须赋值(初始化)
  2. const GENDER = "female";
  3. console.log(GENDER);

3、标识符:

可由字母、数字、下划线、$组成,并且禁止数字开头, (违规写法如123abc, abc@123),严格区分大小写。

三、函数

函数是一个可重用的代码块,用来完成某个特定功能。每当需要反复执行一段代码时,可以利用函数来避免重复书写相同代码。

1、命名函数:

使用function关键字来声明函数,为函数命名一个名字,便于反复调用。

  1. //每个函数都要有返回结果,函数都是单值返回
  2. // 声明
  3. function getName(name) {
  4. return "welcome to: " + name;
  5. }
  6. // 调用,按名
  7. console.log(getName('大牛'));
  8. // 函数允许重写
  9. function getName(name) {
  10. return "欢迎: " + name;
  11. }
  12. // 返回多个值,使用数组或对象
  13. function getUser() {
  14. return [10, "admin", "admin@qq.com"];
  15. }
  16. function getUser() {
  17. return { id: 10, username: "admin", email: "admin@qq.com" };
  18. }
  19. console.table(getUser());

2、匿名函数:

匿名函数就是将一个函数的声明做为值赋值给一个变量或常量,没有命名,通常用这个变量或常量来引用这个函数。先声明再引用。

  1. let sum =function (a,b) {
  2. return a + b;
  3. };
  4. //通过变量来引用
  5. console.log(sum(1,6));

3、高阶函数:

使用函数做为参数或者将函数做为返回的函数,为高阶函数。

  1. //例1
  2. function demo(f) {
  3. return function () {
  4. return "abc";
  5. };
  6. }
  7. //例2
  8. let sum = function (a, b) {
  9. return function (c, d) {
  10. return a + b + c + d;
  11. };
  12. };
  13. let f1 = sum(1, 2);
  14. // f1是一个函数
  15. console.log(typeof f1);
  16. console.log(f1(3, 4));

柯里化函数,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数(把接受参数打散,一个函数接受一个)。 在有些参数需要复用或者需要延迟运行时会用到。

  1. // 柯里化
  2. sum = function (a) {
  3. return function (b) {
  4. return function (c) {
  5. return function (d) {
  6. return a + b + c + d;
  7. };
  8. };
  9. };
  10. };
  11. let res = sum(1)(2)(3)(4); //这种方法可以直接输入多个参数
  12. console.log("res =", res);

四、函数的参数

函数的参数分为:必选参数,默认参数,归并参数。

1、必选参数:

在调用函数时必须要输入的参数。

  1. // 必选参数
  2. let sum = function (a, b) {
  3. return a + b;
  4. };
  5. console.log(sum(1, 2));

2、默认参数:

函数声明时为其中参数设置了默认值,在调用时可以不输入该参数。

  1. sum = function (a, b = 10) {
  2. return a + b; //参数b声明时已经赋值,为默认值
  3. };
  4. console.log(sum(1));
  5. console.log(sum(1, 15));

3、归并参数:

rest语法,将所有参数压到一个数组中来简化参数的获取过程。

  1. //例1
  2. let sum = function (...arr) {
  3. let t = 0;
  4. for (let i = 0; i < arr.length; i++) {
  5. t += arr[i];
  6. }
  7. return t;
  8. };
  9. console.log(sum(1, 2, 3, 4, 5, 6, 7));
  10. //例2 ,简化例1写法
  11. let sum = function (...arr) {
  12. // 使用reduce()简化
  13. return arr.reduce((p, c) => p + c);
  14. };
  15. console.log(sum(1, 2, 3, 4, 5, 6, 7));

五、箭头函数的语法

匿名函数,可以使用箭头函数来简化它。

  1. let sum = function (a, b) {
  2. return a + b;
  3. };
  4. // 匿名函数,可以使用箭头函数来简化它
  5. sum = (a, b) => {
  6. return a + b;
  7. };
  8. console.log(sum(10, 20));
  9. // 如果箭头函数的代码体只有一行语句,可以删除大括号,自带return 功能
  10. sum = (a, b) => a + b;
  11. // 如果只有一个参数,连参数列表的圆括号 都可以删除
  12. let tips = (name) => console.log("欢迎: " + name);
  13. tips("小马");
  14. // 如果函数中要使用到this,就不要用箭头函数,不能当构造函数用

六、立即执行函数的语法

立即执行函数: 声明调用二合一, 声明后直接执行。语法格式为(函数)(参数)

  1. (function (a, b) {
  2. console.log(a + b);
  3. })(100, 600);

更多相关文章

  1. 【MySql】sql_slave_skip_counter 参数的用法解析
  2. 参数SQL_SLAVE_SKIP_COUNTER的奥秘
  3. MySQL主从之master_info_repository与sync_master_info
  4. 第 84 天:NumPy 数学函数
  5. js之留言板与数组字符串函数
  6. JavaScript 之 作用域和闭包,类的继承
  7. 210401 JavaScript 值传递与引用传递, 模板字面量, 标签函数, 解
  8. 【JS基础入门】JavaScript中创建对象的7种创建模式
  9. 作用域与闭包;类与类的继承

随机推荐

  1. Android 异步任务加载图片代码
  2. Android USB挂载
  3. Android中Log信息的输出方法
  4. sqlite数据库默认自增标号RecNo与integer
  5. 安卓Android大量项目源码实例
  6. 在4.0以上系统中应用出现2.3版本的系统UI
  7. 2013.07.11——— android MediaRecorder
  8. Android编码规范
  9. 【翻译】(8-补丁1)Android接口定义语言(AI
  10. Android之Google Map(一)