JavaScript基础知识1(引入方式、注释、输入输出、变量、数组)

时间:2024-05-31 19:15:10

JavaScript基础知识1(引入方式、注释、输入输出、变量、数组)

    • javascript 引入方式
        • 内部方式
        • 外部形式
    • 注释和结束符
        • 单行注释
        • 多行注释
      • 结束符
    • 输入和输出
        • 输出
        • 输入
      • `alert('你好JS');`
      • `document.write('js我来了');`
      • `console.log('看看对不对');`
      • `prompt('输入您的姓名:');`
      • 综合示例
    • 变量
      • 声明
      • 赋值
      • 关键字
      • 变量名命名规则
    • 数组
      • 创建数组
      • 访问数组元素
      • 修改数组元素
      • 常用数组方法
      • 示例

javascript 引入方式

JavaScript 程序不能独立运行,它需要被嵌入 HTML 中,然后浏览器才能执行 JavaScript 代码。通过 script 标签将 JavaScript 代码引入到 HTML 中,有两种方式:

内部方式

通过 script 标签包裹 JavaScript 代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 引入方式</title>
</head>
<body>
  <!-- 内联形式:通过 script 标签包裹 JavaScript 代码 -->
  <script>
    alert('嗨,欢迎来传智播学习前端技术!')
  </script>
</body>
</html>
外部形式

一般将 JavaScript 代码写在独立的以 .js 结尾的文件中,然后通过 script 标签的 src 属性引入

// demo.js
document.write(' 学习前端技术!')
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 引入方式</title>
</head>
<body>
  <!-- 外部形式:通过 script 的 src 属性引入独立的 .js 文件 -->
  <script src="demo.js"></script>
</body>
</html>

如果 script 标签使用 src 属性引入了某 .js 文件,那么 标签的代码会被忽略!!!所以一般不写如下代码所示:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 引入方式</title>
</head>
<body>
  <!-- 外部形式:通过 script 的 src 属性引入独立的 .js 文件 -->
  <script src="demo.js">
    // 此处的代码会被忽略掉!!!!
  	alert(666);  
  </script>
</body>
</html>

注释和结束符

通过注释可以屏蔽代码被执行或者添加备注信息,JavaScript 支持两种形式注释语法:

单行注释

使用 // 注释单行代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 注释</title>
</head>
<body>
  
  <script>
    // 这种是单行注释的语法
    // 一次只能注释一行
    // 可以重复注释
    document.write('嗨,欢迎来传智播学习前端技术!');
  </script>
</body>
</html>
多行注释

使用 /* */ 注释多行代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 注释</title>
</head>
<body>
  
  <script>
    /* 这种的是多行注释的语法 */
    /*
    	更常见的多行注释是这种写法
    	在些可以任意换行
    	多少行都可以
      */
    document.write('嗨,欢迎来传智播学习前端技术!')
  </script>
</body>
</html>

注:编辑器中单行注释的快捷键为 ctrl + / 多行注释为shift+alt+a

结束符

在 JavaScript 中 ; 代表一段代码的结束,多数情况下可以省略 ; 使用回车(enter)替代。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 结束符</title>
</head>
<body>
  
  <script> 
    alert(1);
    alert(2);
    alert(1)
    alert(2)
  </script>
</body>
</html>

实际开发中有许多人主张书写 JavaScript 代码时省略结束符 ;

输入和输出

输出和输入也可理解为人和计算机的交互,用户通过键盘、鼠标等向计算机输入信息,计算机处理后再展示结果给用户,这便是一次输入和输出的过程。

举例说明:如按键盘上的方向键,向上/下键可以滚动页面,按向上/下键这个动作叫作输入,页面发生了滚动了这便叫输出。

输出

JavaScript 可以接收用户的输入,然后再将输入的结果输出:

alert()document.wirte()

以数字为例,向 alert()document.write()输入任意数字,他都会以弹窗形式展示(输出)给用户。

输入

prompt() 输入任意内容会以弹窗形式出现在浏览器中,一般提示用户输入一些内容。
这几种 JavaScript 语法各自有不同的作用,分别用于不同的输入和输出场景。以下是详细的解释:

alert('你好JS');

作用:显示一个警告对话框,包含指定的消息和一个“确定”按钮。用户必须点击“确定”按钮才能关闭对话框并继续与页面交互。

示例

alert('你好JS');

效果:弹出一个对话框,显示消息“你好JS”。

document.write('js我来了');

作用:将指定的文本直接写入到 HTML 文档中。通常用于在页面加载时动态生成内容。

示例

document.write('js我来了');

效果:在页面上显示“js我来了”。

注意document.write 只有在页面加载时使用是安全的。如果在页面加载完成后再调用 document.write,它会清空整个文档的内容,并写入新的内容。因此,现代开发中很少使用 document.write

console.log('看看对不对');

作用:将指定的信息输出到浏览器的控制台中,主要用于调试和开发。

示例

console.log('看看对不对');

效果:在浏览器的开发者工具控制台中显示“看看对不对”。

prompt('输入您的姓名:');

作用:显示一个提示对话框,包含指定的消息和一个文本输入框。用户可以在输入框中输入数据,然后点击“确定”或“取消”按钮。该函数会返回用户输入的字符串。如果用户点击“取消”,则返回 null

示例

const name = prompt('输入您的姓名:');
console.log(`您输入的姓名是:${name}`);

效果:弹出一个对话框,提示用户输入姓名。输入内容后点击“确定”,用户输入的内容会被存储在变量 name 中,并输出到控制台。

综合示例

以下是一个综合示例,展示了如何使用这些语法:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript 示例</title>
</head>
<body>
    <script>
        // 弹出警告对话框
        alert('你好JS');

        // 将文本写入到 HTML 文档中
        document.write('js我来了');

        // 在控制台输出信息
        console.log('看看对不对');

        // 显示提示对话框,并将用户输入的内容输出到控制台
        const name = prompt('输入您的姓名:');
        console.log(`您输入的姓名是:${name}`);
    </script>
</body>
</html>

这个示例中,当页面加载时:

  1. 弹出一个警告对话框,显示“你好JS”。
  2. 在页面上显示“js我来了”。
  3. 在控制台输出“看看对不对”。
  4. 弹出一个提示对话框,要求用户输入姓名,并将输入的姓名输出到控制台。

理解变量是计算机存储数据的“容器”,掌握变量的声明方式

变量是计算机中用来存储数据的“容器”,它可以让计算机变得有记忆,通俗的理解变量就是使用【某个符号】来代表【某个具体的数值】(数据)

<script>
  // x 符号代表了 5 这个数值
  x = 5
  // y 符号代表了 6 这个数值
  y = 6
    
  //举例: 在 JavaScript 中使用变量可以将某个数据(数值)记录下来!

  // 将用户输入的内容保存在 num 这个变量(容器)中
  num = prompt('请输入一数字!')

  // 通过 num 变量(容器)将用户输入的内容输出出来
  alert(num)
  document.write(num)
</script>

变量

理解变量是计算机存储数据的“容器”,掌握变量的声明方式

变量是计算机中用来存储数据的“容器”,它可以让计算机变得有记忆,通俗的理解变量就是使用【某个符号】来代表【某个具体的数值】(数据)

<script>
  // x 符号代表了 5 这个数值
  x = 5
  // y 符号代表了 6 这个数值
  y = 6
    
  //举例: 在 JavaScript 中使用变量可以将某个数据(数值)记录下来!

  // 将用户输入的内容保存在 num 这个变量(容器)中
  num = prompt('请输入一数字!')

  // 通过 num 变量(容器)将用户输入的内容输出出来
  alert(num)
  document.write(num)
</script>

声明

声明(定义)变量有两部分构成:声明关键字、变量名(标识)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 声明和赋值</title>
</head>
<body>
  
  <script> 
    // let 变量名
    // 声明(定义)变量有两部分构成:声明关键字、变量名(标识)
    // let 即关键字,所谓关键字是系统提供的专门用来声明(定义)变量的词语
    // age 即变量的名称,也叫标识符
    let age
  </script>
</body>
</html>

关键字是 JavaScript 中内置的一些英文词汇(单词或缩写),它们代表某些特定的含义,如 let 的含义是声明变量的,看到 let 后就可想到这行代码的意思是在声明变量,如 let age;

letvar 都是 JavaScript 中的声明变量的关键字,推荐使用 let 声明变量!!!

赋值

声明(定义)变量相当于创造了一个空的“容器”,通过赋值向这个容器中添加数据。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 声明和赋值</title>
</head>
<body>
  
  <script> 
    // 声明(定义)变量有两部分构成:声明关键字、变量名(标识)
    // let 即关键字,所谓关键字是系统提供的专门用来声明(定义)变量的词语
    // age 即变量的名称,也叫标识符
    let age
    // 赋值,将 18 这个数据存入了 age 这个“容器”中
    age = 18
    // 这样 age 的值就成了 18
    document.write(age)
    
    // 也可以声明和赋值同时进行
    let str = 'hello world!'
    alert(str);
  </script>
</body>
</html>

关键字

JavaScript 使用专门的关键字 letvar 来声明(定义)变量,在使用时需要注意一些细节:

以下是使用 let 时的注意事项:

  1. 允许声明和赋值同时进行
  2. 不允许重复声明
  3. 允许同时声明多个变量并赋值
  4. JavaScript 中内置的一些关键字不能被当做变量名

以下是使用 var 时的注意事项:

  1. 允许声明和赋值同时进行
  2. 允许重复声明
  3. 允许同时声明多个变量并赋值

大部分情况使用 letvar 区别不大,但是 let 相较 var 更严谨,因此推荐使用 let,后期会更进一步介绍二者间的区别。

变量名命名规则

关于变量的名称(标识符)有一系列的规则需要遵守:

  1. 只能是字母、数字、下划线、$,且不能能数字开头
  2. 字母区分大小写,如 Age 和 age 是不同的变量
  3. JavaScript 内部已占用于单词(关键字或保留字)不允许使用
  4. 尽量保证变量具有一定的语义,见字知义

注:所谓关键字是指 JavaScript 内部使用的词语,如 letvar,保留字是指 JavaScript 内部目前没有使用的词语,但是将来可能会使用词语。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 变量名命名规则</title>
</head>
<body>
  
  <script> 
    let age = 18 // 正确
    let age1 = 18 // 正确
    let _age = 18 // 正确

    // let 1age = 18; // 错误,不可以数字开头
    let $age = 18 // 正确
    let Age = 24 // 正确,它与小写的 age 是不同的变量
    // let let = 18; // 错误,let 是关键字
    let int = 123 // 不推荐,int 是保留字
  </script>
</body>
</html>

JavaScript 中的数组是一种用于存储多个值的变量类型。数组是有序的集合,每个元素都有一个索引,从 0 开始。以下是 JavaScript 数组的基本概念、常用方法和示例。

数组

创建数组

  1. 使用数组字面量

    let fruits = ['Apple', 'Banana', 'Cherry'];
    
  2. 使用 Array 构造函数

    let fruits = new Array('Apple', 'Banana', 'Cherry');
    

访问数组元素

通过索引访问数组元素,索引从 0 开始:

let fruits = ['Apple', 'Banana', 'Cherry'];
console.log(fruits[0]); // 输出 'Apple'
console.log(fruits[1]); // 输出 'Banana'
console.log(fruits[2]); // 输出 'Cherry'

修改数组元素

直接使用索引修改数组中的元素:

let fruits = ['Apple', 'Banana', 'Cherry'];
fruits[1] = 'Blueberry';
console.log(fruits); // 输出 ['Apple', 'Blueberry', 'Cherry']

常用数组方法

  1. push()pop()

    • push() 在数组末尾添加一个或多个元素。
    • pop() 从数组末尾删除一个元素。
    let fruits = ['Apple', 'Banana'];
    fruits.push('Cherry'); // ['Apple', 'Banana', 'Cherry']
    fruits.pop(); // ['Apple', 'Banana']
    
  2. unshift()shift()

    • unshift() 在数组开头添加一个或多个元素。
    • shift() 从数组开头删除一个元素。
    let fruits = ['Apple', 'Banana'];
    fruits.unshift('Mango'); // ['Mango', 'Apple', 'Banana']
    fruits.shift(); // ['Apple', 'Banana']
    
  3. concat()

    • 合并两个或多个数组,返回一个新数组。
    let fruits = ['Apple', 'Banana'];
    let moreFruits = ['Cherry', 'Date'];
    let allFruits = fruits.concat(moreFruits); // ['Apple', 'Banana', 'Cherry', 'Date']
    
  4. slice()

    • 从数组中提取部分元素,返回一个新数组。
    let fruits = ['Apple', 'Banana', 'Cherry', 'Date'];
    let someFruits = fruits.slice(1, 3); // ['Banana', 'Cherry']
    
  5. splice()

    • 添加、删除或替换数组中的元素。
    let fruits = ['Apple', 'Banana', 'Cherry'];
    fruits.splice(1, 1, 'Blueberry'); // ['Apple', 'Blueberry', 'Cherry']
    
  6. forEach()

    • 遍历数组中的每个元素。
    let fruits = ['Apple', 'Banana', 'Cherry'];
    fruits.forEach(function(fruit) {
        console.log(fruit);
    });
    // 输出:
    // Apple
    // Banana
    // Cherry
    
  7. map()

    • 创建一个新数组,数组中的每个元素是回调函数的返回值。
    let numbers = [1, 2, 3];
    let doubled = numbers.map(function(number) {
        return number * 2;
    });
    console.log(doubled); // [2, 4, 6]
    
  8. filter()

    • 创建一个新数组,数组中的每个元素是通过回调函数测试的所有元素。
    let numbers = [1, 2, 3, 4];
    let evens = numbers.filter(function(number) {
        return number % 2 === 0;
    });
    console.log(evens); // [2, 4]
    
  9. reduce()

    • 对数组中的每个元素执行一个累加器函数,最终为单一的输出值。
    let numbers = [1, 2, 3, 4];
    let sum = numbers.reduce(function(total, number) {
        return total + number;
    }, 0);
    console.log