JavaScript day01 笔记

news2024/11/25 21:23:25

一、引入方式

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

1️⃣内部

通过 script 标签包裹 JavaScript 代码(一般就写在</script>的前面)

<body>
  
  <!-- 内联形式:通过 script 标签包裹 JavaScript 代码 -->
  <script>
    alert('嗨,欢迎来传智播学习前端技术!')
  </script>
</body>

2️⃣外部

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

<body>

  
  <!-- 外部形式:通过 script 的 src 属性引入独立的 .js 文件 -->
  <script src="demo.js"></script>
</body>

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

<body>
  
  <!-- 外部形式:通过 script 的 src 属性引入独立的 .js 文件 -->
  <script src="demo.js">
    // 此处的代码会被忽略掉!!!!
      alert(666);  
  </script>
</body>

3️⃣内联

代码写在标签内部

注意:了解即可,后面Vue框架会使用这种模式

<body>
  <button onclick="alert(逗你玩的~)">这里是一个神奇的按</button>
</body>

❤总结:

1、JavaScript三种书写位置?

内部、外部、行内

2、注意事项:

书写的位置放到文档末尾</body>前面

外部js标签中间不要写代码,否则会被忽略

二、注释和结束符

1️⃣单行注释

使用 // 注释单行代码

ctrl + /

2️⃣多行注释

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

shift + alt + a

3️⃣结束符

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

<body>
  
  <script> 
    alert(1);
    alert(2);
    alert(1)
    alert(2)
  </script>

</body>

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

❤总结:

(1)JavaScript 注释有哪两种方式?

单行注释:// (ctrl +/ )

多行注释:/* */ (shift + alt +a)

(2)JavaScript结束符注意点

结束符是: 分号(;)

结束符可以省略


三、输入和输出

1️⃣输出

语法1:

document.write('要写的内容')

注意:如果输出的内容写的是标签,也会被解析成网页元素

语法2:

alert('要写的内容')

作用:页面弹出警告对话框

语法3:

console.log('控制台打印')

作用:控制台输出语法,用于程序员的调试

2️⃣输入

语法:

prompt('请输入您的名字:')

作用:显示一个对话框,对话框中包括一条文字信息,用来提示用户输入文字

课堂练习:

需求: 浏览器中弹出对话框:你好 JS~

页面中打印输出:JavaScript 我来了

页面控制台输出:它会魔法吧~

<body>
  
  <script> 
    // 1. 输入的任意数字,都会以弹窗形式展示
    document.write('要输出的内容')
    alert('要输出的内容');

    // 2. 以弹窗形式提示用户输入姓名,注意这里的文字使用英文的引号
    prompt('请输入您的姓名:')
  </script>

</body>


四、变量

注意:变量不是数据本身,而是用于存储数值的容器

<script>
  // x 符号代表了 5 这个数值
  x = 5
  // y 符号代表了 6 这个数值
  y = 6

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

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

1️⃣声明变量

若要使用变量,首先需要声明变量。由关键字、变量名组成。

语法:

let 变量名

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

2️⃣变量赋值

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

let age
// 赋值,将 18 这个数据存入了 age 这个“容器”中
age = 18
// 这样 age 的值就成了 18
document.write(age)

// 也可以声明和赋值同时进行
let str = 'hello world!'
alert(str);

❤总结

1、变量用什么关键字来声明?

let

2、变量通过什么符号来赋值?

= (赋值运算符)

3、开发中可以声明的同时也直接赋值

课堂练习:

1、声明一个变量名,用于存放用户购买的商品 数量(num)为 20 件

2、声明一个变量,用于存放用户的姓名(uname)为‘张三’

3、依次控制台打印输出两个变量

3️⃣更新变量

//声明一个age变量,同时里面存放了18这数字
let age = 18
//变量里的数据变化更新为19
age = 19 
//页面输出的结果是19
document.write(age)

注意:let不允许多次声明一个变量

4️⃣声明多个变量

语法:多个变量中间用逗号隔开

let age  = 18 , uname = 'pink'

注:为了更好的可读性,建议一行只声明一个变量

❤总结

1、变量赋值之后如何更新新值?

直接给他一个不同的值来更新

2、不提倡同时声明多个不同的变量

5️⃣关键字

let VS var

let

  1. 不允许重复声明
  2. JavaScript 中内置的一些关键字不能被当做变量名

var

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

大部分情况使用 letvar 区别不大,但是 let 相较 var 更严谨,因此推荐使用 let

6️⃣变量名命名规则

  1. 只能是字母、数字、下划线、$,且不能数字开头
  1. 字母区分大小写
  1. 关键字或保留字不允许使用
  1. 见字知义,驼峰命名

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 是保留字

7️⃣变量拓展—数组

数组(Array) :let arr = [ ]

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

1、声明语法

let 数组名 = [数据1,数据2,……]

2、数组的取值

数组名[ 下标 ]

3、元素:数组中保存的每个数据都为元素(元素可不同)

下标:数组中数据的编号

长度:数组中的数据的个数

五、常量

概念:const 声明的变量称为“常量”。

使用场景:当某个变量永远不会改变

命名规范:和变量一致

const PI = 3.14

注意: 常量不允许重新赋值,声明的时候必须赋值(初始化)

六、数据类型

1️⃣基础分类

基本数据类型:number 数字型 、string 字符串型 、boolean 布尔型 、underfined 未定义型 、null 空类型

引用数据类型:object类型

注:JavaScript 是弱数据类型,变量到底属于哪种 ,只有赋值之后才能确认

Java 是强数据类型 ,int a = 4 必须是整数

2️⃣数字类型(Number)

包括:整数、小数、正数、负数

算术运算符: + 、 - 、 * 、 / 、%(取模)

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

NaN代表一个计算错误

console.log('老师' - 2 ) //NaN

NaN是粘性的,任何对NaN的操作都会返回NaN

console.log( NaN +2 )  //NaN

3️⃣字符串类型(string)

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

let tel = '18650155702' //被引号包括就是字符串
let str = '' //空字符串

注意事项:

  1. 无论单引号或是双引号必须成对使用
  1. 单引号/双引号可以互相嵌套,但是不以自已嵌套自已
  1. 必要时可以使用转义符 \,输出单引号或双引号

字符串拼接:

口诀:数字相加 ,字符相连

let uname = '彭于晏'
let song = '是演员'
document.write( uname + song ) //彭于晏是演员

模板字符串

document.write('大家好'+ name+',今年'+age+'岁')
document.write(`大家好,我叫${name}`)

❤总结

1、JavaScript中什么样的数据是字符串类型

只要用单引号 、双引号、反引号包含起来的就是字符串类型

2、字符串拼接比较麻烦,可以使用什么办法解决

模板字符串 ,反引号和${ } 结合

4️⃣布尔类型

truefalse

//  pink老师帅不帅?回答 是 或 否
let isCool = true // 是的,摔死了!
isCool = false // 不,套马杆的汉子!
document.write(typeof isCool) // 结果为 boolean

5️⃣未定义类型undefined

只声明变量,不赋值的情况下,变量的默认值为 undefined

let tmp;
document.write(typeof tmp) // 结果为 undefined

6️⃣null空类型

代表是无 、空、值未知

let obj = null
console.log(obj) //null

区别null、undefined

undefined 表示没有赋值

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

❤总结

1、布尔数据类型有几个?

true 、 false

2、什么时候出现未定义数据类型 ?开发场景?

定义变量未给值undefined

说明值还没有传过来

3、null是什么类型?开发场景?

空类型

如果一个变量里面确定存放的是对象,若没准备好对象,可以放null

7️⃣检测数据类型

typeof(x)或者不带括号

网页的控制台中数字型和布尔是蓝色,字符串和undefined是灰色

0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣

七、类型转换

1️⃣隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换

规则: +号两边只要有一个是字符串,都会把另外一个转为字符串

除了+ 之外, - * / 都会把数据转换成数字类型

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

2️⃣显式转换

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

数字类型转换 :Number() 函数

通过 Number 显示转换成数值类型,

当转换失败时结果为 NaN(Not a Number)即不是一个数字

注:NaN也是number类型的数据,代表非数字

let strNum = "123";
let num = Number(strNum);
console.log(num); 

parseInt(数据):将字符串转换为整数。它会从字符串的开头开始解析,直到遇到非数字字符

let strInt = "123abc";
let intNum = parseInt(strInt);
console.log(intNum); 

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>

转换为字符串:

String(数据)

变量 . toString(进制)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2237767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Notepad++ 最新官网中文版在线下载 附文本编辑器安装与基础使用教程

Notepad &#xff08;记事本&#xff09;是一个简单的文本编辑器&#xff0c;预装在所有版本的 Microsoft Windows 操作系统中。它的主要功能是创建、编辑和存储纯文本文件&#xff0c;通常以 .txt 格式保存。Notepad 的设计旨在提供一个轻量级的文本处理工具&#xff0c;适合快…

使用C语言进行信号处理:从理论到实践的全面指南

1. 引言 在现代操作系统中&#xff0c;信号是一种进程间通信机制&#xff0c;它允许操作系统或其他进程向一个进程发送消息。信号可以用来通知进程发生了一些重要事件&#xff0c;如用户请求终止进程、硬件异常、定时器超时等。掌握信号处理技术对于开发健壮、高效的系统程序至…

大数据入门-什么是HBase

目录 一、概念 二、架构 1.Client 2.Zookeeper 3.HMaster 4.HRegionServer 三、特性 1.数据存储庞大 2.支持随机读写 3.轻松融入生态 4.数据强一致性 5.性能足够高效 四、适用场景 五、其他事宜 1.权益备注 2.支持博主 大数据入门系列文章 这里简单介绍的HBas…

【笔记】自动驾驶预测与决策规划_Part6_不确定性感知的决策过程

文章目录 0. 前言1. 部分观测的马尔可夫决策过程1.1 POMDP的思想以及与MDP的联系1.1.1 MDP的过程回顾1.1.2 POMDP定义1.1.3 与MDP的联系及区别POMDP 视角MDP 视角决策次数对最优解的影响 1.2 POMDP的3种常规解法1.2.1 连续状态的“Belief MDP”方法1. 信念状态的定义2. Belief …

Vue2中使用firefox的pdfjs进行文件文件流预览

文章目录 1.使用场景2. 使用方式1. npm 包下载,[点击查看](https://www.npmjs.com/package/pdfjs-dist)2. 官网下载1. 放到public文件夹下面2. 官网下载地址[点我,进入官网](https://github.com/mozilla/pdf.js/tags?afterv3.3.122) 3. 代码演示4. 图片预览5. 如果遇到跨域或者…

MFC图形函数学习06——画椭圆弧线函数

绘制椭圆弧线函数是MFC基本绘图函数&#xff0c;这个函数需要的参数比较多&#xff0c;共四对坐标点。前两对坐标点确定椭圆的位置与大小&#xff0c;后两对坐标确定椭圆弧线的起点与终点。 一、绘制椭圆弧线函数 原型&#xff1a;BOOL Arc(int x1,int y1,int x2,int y2…

新版 idea 编写 idea 插件时,启动出现 ClassNotFound

IntelliJ IDEA 2024.1.6 (Ultimate Edition) Build #IU-241.19072.14, built on August 8, 2024 Licensed to Sophia Tout Subscription is active until June 29, 2025. For educational use only. Runtime version: 17.0.111-b1207.30 amd64 Kotlin: 241.19072.14-IJ 新版本…

信息安全工程师(83)Windows操作系统安全分析与防护

一、Windows操作系统安全分析 系统漏洞&#xff1a; Windows操作系统由于其复杂性和广泛使用&#xff0c;可能存在一些已知或未知的漏洞。这些漏洞可能会被黑客利用&#xff0c;进行恶意攻击。微软会定期发布系统更新和补丁&#xff0c;以修复这些漏洞&#xff0c;提高系统的安…

【嵌入式开发——ARM】1ARM架构

嵌入式领域&#xff0c;使用ARM架构的芯片公司可不占少数吧&#xff0c;intel的x86架构主要占据PC、服务器市场&#xff0c;ARM架构主要占据移动市场。x86架构和ARM架构不同的主要原因&#xff0c;是背后使用的计算机指令集不同。计算机有自己的语言系统&#xff08;汇编&#…

31-自定义地图:分层地图

利用自定义地图中的级别&#xff0c;可以让多个人同时在一张地图上工作。它还允许您在仿真过程中使用Python API在地图上加载和卸载层&#xff0c;就像分层的CARLA地图一样(layered CARLA maps)。 本指南将解释如何添加新级别&#xff0c;如何向级别添加资产&#xff0c;以…

操作系统-磁盘

文章目录 磁盘的结构一、磁盘的物理结构二、磁盘的逻辑结构 磁盘的调度算法磁盘时间算法先来先服务&#xff08;FCFS - First-Come, First-Served&#xff09;最短寻道时间优先&#xff08;SSTF - Shortest Seek Time First&#xff09;扫描算法&#xff08;SCAN&#xff0c;也…

【Linux】【信号操作】汇总整理

信号&#xff08;Signals&#xff09;是操作系统中用于通知进程发生特定事件的一种机制。信号可以由软件或硬件触发&#xff0c;并且可以被进程捕获和处理。以下是信号的相关概念、常见信号列表、信号处理以及相关API的汇总整理。 信号概述 信号是操作系统向进程发出的通知&am…

必备的计算机软件专业资料汇总,包括:计算机专业实习报告,计算机毕业设计成品(含源码和论文1900套)

大学期间必备的计算机软件专业资料汇总&#xff0c;包括&#xff1a;计算机专业实习报告&#xff08;58篇&#xff09;、计算机毕业设计成品&#xff08;含源码和论文&#xff0c;1900多套&#xff0c;包括C语言/PHP/VB/java/JSP/Andorid/Python/微信小程序等&#xff09;、HTM…

业务模块部署

一、部署前端 1.1 window部署 下载业务模块前端包。 &#xff08;此包为耐威迪公司发布&#xff0c;请联系耐威迪客服或售后获得&#xff09; 包名为&#xff1a;业务-xxxx-business &#xff08;注&#xff1a;xxxx为发布版本号&#xff09; 此文件部署位置为&#xff1a;……

使用kalibr_calibration标定相机(realsense)和imu(h7min)

vslam-evaluation/VINS/Installation documentation/4.IMU和相机联合标定kalibr_calibration.md at master DroidAITech/vslam-evaluation GitHub 目录 1.kalibr安装 1.1安装依赖项 1.2创建工作空间 1.3下载kalibr并编译 1.4设置环境变量 2.准备标定板 3.配置驱动和打…

Java | Leetcode Java题解之第551题学生出勤记录I

题目&#xff1a; 题解&#xff1a; class Solution {public boolean checkRecord(String s) {int absents 0, lates 0;int n s.length();for (int i 0; i < n; i) {char c s.charAt(i);if (c A) {absents;if (absents > 2) {return false;}}if (c L) {lates;if …

MATLAB课程:AI工具辅助编程——MATLAB+LLMs

给出一些可能有用的方法辅助大家写代码。 方法一&#xff1a;MATLAB软件LLM (不太懂配置的同学们为了省事可以主要用这个方法) 方法一特别针对本门MATLAB教学课程&#xff0c;给出一种辅助ai工具的操作指南。MATLAB中可以安装MatGPT插件&#xff0c;该插件通过调用ChatGPT的API…

腾讯混元3D-1.0:文本到三维和图像到三维生成的统一框架

虽然三维生成模型极大地改进了艺术家的工作流程&#xff0c;但现有的三维生成扩散模型存在生成速度慢、泛化能力差的问题。 为了解决这个问题&#xff0c;我们提出了一种名为 "Hunyuan3D-1.0 "的两阶段方法&#xff0c;包括精简版和标准版&#xff0c;均支持文本和图…

现代Web开发:Vue 3 组件化开发实战

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 现代Web开发&#xff1a;Vue 3 组件化开发实战 现代Web开发&#xff1a;Vue 3 组件化开发实战 现代Web开发&#xff1a;Vue 3 组…

VBA08-if语句

一、单行 If 语句 If x > 10 Then MsgBox "x is greater than 10"二、多行 If...Then...End If 语句 If x > 10 ThenMsgBox "x is greater than 10"y x 5 End If 三、If...Then...Else 语句 If condition Then 当条件为真时执行的代码块stateme…