JavaScript系统学习---01---初识JavaScript

目录

一、介绍

1.1 初识JavaScript

1.2 JavaScript书写位置

1.3 注释和结束符

1.3 输入和输出

二、变量

2.1 声明和赋值

2.2 关键字

2.3 变量名命名规则

2.4变量的本质

2.5、数组的基本使用

三、数据类型

3.1 数值类型

3.2 字符串类型

3.3 布尔类型

3.4 undefined

3.5 数据类型 – null(空类型)

3.6 类型小结

四、类型转换

4.1 隐式转换

4.2显式转换


一、介绍

1.1 初识JavaScript

1.JavaScript是什么?

        是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。

2.作用

  •                 网页特效
  •                 表单验证
  •                 数据交互
  •                 服务器编程

3.JavaScript的组成?

ECMAScript:规定了js基础语法核心知识。

 Web APIs:

        DOM: 操作文档

        BOM: 操作浏览器

        权威网站:MDN

1.2 JavaScript书写位置

1.内部形式

直接写在html里,用script标签包住。页面加载是有顺序的,从上往下执行。所以js最好放在最下面比较合适。

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

2.外部形式(最常用)

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

<!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>

1.3 注释和结束符

通过注释可以屏蔽代码被执行或者添加备注信息,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 + /

结束符

在 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 跟 HTML 和 CSS 一样,会忽略【一些】空白符,但是换行符(回车)会被识别成结束符 ;,因此在实际开发中有许多人主张书写 JavaScript 代码时省略结束符 ;

1.3 输入和输出

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

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

输出

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

alert()document.wirte()

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

输入

prompt() 输入任意内容会以弹窗形式出现在浏览器中,一般提示用户输入一些内容。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 输入输出</title>
</head>
<body>
  
  <script> 
    // 1. 输入的任意数字,都会以弹窗形式展示
    document.write('要输出的内容');
    alert('要输出的内容');
​
    // 2. 以弹窗形式提示用户输入姓名,注意这里的文字使用英文的引号
    prompt('请输入您的姓名:');
  </script>
</body>
</html>

二、变量

变量是计算机中用来存储数据的“容器”,简单理解就是一个个的盒子,注意变量不是数据 。

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

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

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

2.1 声明和赋值

声明

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

<!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>

2.2 关键字

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

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

  1. 允许声明和赋值同时进行

  2. 不允许重复声明

  3. 允许同时声明多个变量并赋值

  4. JavaScript 中内置的一些关键字不能被当做变量名

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

  1. 允许声明和赋值同时进行

  2. 允许重复声明

  3. 允许同时声明多个变量并赋值

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

2.3 变量名命名规则

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

  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>

2.4变量的本质

        内存:计算机中存储数据的地方。

        变量:是程序在内存中申请的一块用来存放数据的小空间。

2.5、数组的基本使用

目标:能够声明数组并且能够获取里面的数据

1. 声明语法

 let 数组名=【数据1,数据2,。。。,数据n】

例子:

  •         数组是按顺序保存,所以每个数据都有自己的编号
  •         计算机中的编号从0开始,所以小明的编号为0,小刚编号为1,以此类推
  •         在数组中,数据的编号也叫索引或下标
  •         数组可以存储任意类型的数据

2.一些术语

  •  元素:数组中保存的每个数据都叫数组元素
  •  下标:数组中数据的编号
  •  长度:数组中数据的个数,通过数组的length属性获得

三、数据类型

JavaScript属于弱数据类型,给他赋值了,才知道是什么数据类型!

计算机程序可以处理大量的数据,为了方便数据的管理,将数据分成了不同的类型:

注:通过 typeof 关键字检测数据类型

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 数据类型</title>
</head>
<body>
  
  <script> 
    // 检测 1 是什么类型数据,结果为 number
    document.write(typeof 1);
  </script>
</body>
</html>

3.1 数值类型

即我们数学中学习到的数字,可以是整数、小数、正数、负数

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 数据类型</title>
</head>
<body>
  
  <script> 
    let score = 100; // 正整数
    let price = 12.345; // 小数
    let temperature = -40; // 负数
​
    document.write(typeof score); // 结果为 number
    document.write(typeof price); // 结果为 number
    document.write(typeof temperature); // 结果为 number
  </script>
</body>
</html>

JavaScript 中的数值类型与数学中的数字是一样的,分为正数、负数、小数等。

3.2 字符串类型

通过单引号( '') 、双引号( "")或反引号包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。

注意事项:

  1. 无论单引号或是双引号必须成对使用

  2. 单引号/双引号可以互相嵌套,但是不以自已嵌套自已

  3. 必要时可以使用转义符 \,输出单引号或双引号

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 数据类型</title>
</head>
<body>
  
  <script> 
    let user_name = '小明'; // 使用单引号
    let gender = "男"; // 使用双引号
    let str = '123'; // 看上去是数字,但是用引号包裹了就成了字符串了
    let str1 = ''; // 这种情况叫空字符串
        
    documeent.write(typeof user_name); // 结果为 string
    documeent.write(typeof gender); // 结果为 string
    documeent.write(typeof str); // 结果为 string
  </script>
</body>
</html>

3.3 布尔类型

表示肯定或否定时在计算机中对应的是布尔类型数据,它有两个固定的值 truefalse,表示肯定的数据用 true,表示否定的数据用 false

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 数据类型</title>
</head>
<body>
  
  <script> 
    let isCool = true; 
    isCool = false; 
​
    document.write(typeof isCool); // 结果为 boolean
  </script>
</body>
</html>

3.4 undefined

未定义是比较特殊的类型,只有一个值 undefined,只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 数据类型</title>
</head>
<body>
  
  <script> 
    // 只声明了变量,并末赋值
    let tmp;
    document.write(typeof tmp); // 结果为 undefined
  </script>
</body>
</html>

注:JavaScript 中变量的值决定了变量的数据类型。

3.5 数据类型 – null(空类型)

null 表示值为 空
let obj = null;
null 和 undefined 区别:

        1. undefined 表示没有赋值

        2. null 表示赋值了,但是内容为空

null 开发中的使用场景:

        官方解释:把 null 作为尚未创建的对象

        大白话: 将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null

3.6 类型小结

比较:undefined表示没有为变量设置值,而null表示变量不存在或无效。需注意,null 和 undefined 与 空字符串 和 0 都不相等。

拓展:模板字符串

1. 作用

        (1)拼接字符串和变量

        (2)在没有它之前,要拼接变量比较麻烦
 document.write('大家好,我叫' + name + ',今年' + age + '岁');
2. 符号
        
  •         (1)   ``
  •         (2)在英文输入模式下按键盘的tab键上方那个键(1左边那个键)
  •         (3)内容拼接变量时,用 ${} 包住变量
document.write(`大家好,我叫${name},今年${age}岁`)

四、类型转换

JavaScript是弱数据类型:

        JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。

坑:

        使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算。

在 JavaScript 中数据被分成了不同的类型,如数值、字符串、布尔值、undefined,在实际编程的过程中,不同数据类型之间存在着转换的关系。

4.1 隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 隐式转换</title>
</head>
<body>
  <script> 
    let num = 13; // 数值
    let num2 = '2'; // 字符串
​
    // 结果为 132
    // 原因是将数值 num 转换成了字符串,相当于 '13'
    // 然后 + 将两个字符串拼接到了一起
    console.log(num + num2);
​
    // 结果为 11
    // 原因是将字符串 num2 转换成了数值,相当于 2
    // 然后数值 13 减去 数值 2
    console.log(num - num2);
​
    let a = prompt('请输入一个数字');
    let b = prompt('请再输入一个数字');
​
    alert(a + b);
  </script>
</body>
</html>

注:数据类型的隐式转换是 JavaScript 的特征,后续学习中还会遇到,目前先需要理解什么是隐式转换。

4.2显式转换

编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。

Number(数据):

        (1)通过 Number 显示转换成数值类型,当转换失败时结果为 NaN(Not a Number)即不是一个数字。

        (2)NaN也是number类型的数据,代表非数字。

parseInt(数据):

        只保留整数

parseFloat(数据) :
        可以保留小数
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 显式转换</title>
</head>
<body>
  <script>
    let t = '12';
    let f = 8;
​
    // 显式将字符串 12 转换成数值 12
    t = Number(t);
​
    // 检测转换后的类型
    // console.log(typeof t);
    console.log(t + f); // 结果为 20
​
    // 并不是所有的值都可以被转成数值类型
    let str = 'hello';
    // 将 hello 转成数值是不现实的,当无法转换成
    // 数值时,得到的结果为 NaN (Not a Number)
    console.log(Number(str));
  </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记录菌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值