JavaScript day01 笔记

一、引入方式

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) // 结果为 numberdocument.write(typeof price) // 结果为 numberdocument.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 减去 数值 2console.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 转换成数值 12t = 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.mzph.cn/news/885449.shtml

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

相关文章

【Git】Liunx环境下Git的使用:“克隆,提交,推送“

目录 一、常用参数 二、我们为什么要使用Git&#xff1f; 三、创建远程仓库 第一步&#xff1a;创建对应代码托管平台账号。 第二步&#xff1a;在托管平台创建仓库 第三步&#xff1a;完善仓库内容&#xff08;选择性使用&#xff09; 开源和私有 四、克隆远程仓库到本…

机器人零位、工作空间、坐标系及其变换,以UR5e机器人为例

机器人中的主要坐标系 在机器人中&#xff0c;常用的坐标系包括&#xff1a; 基坐标系&#xff08;Base Frame&#xff09;&#xff1a;固定在机器人基座上的坐标系&#xff0c;用于描述机器人的整体位置和方向&#xff0c;是其他所有坐标系的参考点。 连杆坐标系&#xff08…

JavaSE:运算符 (学习笔记)

目录 一&#xff0c;算术运算符 【1】 共同点&#xff1a; 【2】 不同点&#xff1a; 二&#xff0c;关系运算符 三&#xff0c;逻辑运算符 2&#xff0c;&和&&的区别和联系 { |和||的区别和联系 }---两题类似 四&#xff0c;赋值运算符 五&#xff0c;拓展…

C++中类的默认成员函数

默认成员函数 1.构造函数2.析构函数3.拷贝构造函数4.赋值运算符重载4.1运算符重载4.2赋值运算符重载 #mermaid-svg-oipiwg9stvONvYK0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-oipiwg9stvONvYK0 .error-icon{f…

游戏引擎学习第一天

视频参考: https://www.bilibili.com/video/BV1zGDCYHErA/ 创建一个保存项目的路径 VS的安装略过&#xff0c;个人自行百度 1. vs 创建第一个CMAKE的窗口项目 game.cpp 修改如下的代码 到https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-winmain 去…

视频播放相关的杂记

基于QT FFMPEG设计一款 RTMP协议推流、视频录制软件 实现的功能&#xff1a; &#xff08;1&#xff09;将摄像头视频流 麦克风音频流合并&#xff0c;并推到流媒体服务器 &#xff08;2&#xff09;将摄像头视频流 麦克风音频流保存到本地磁盘 基于QtFFMPEG设计一款RTM…

2024年将尽,我们开始为ESG的未来感到担忧 | 深度

2024已经接近尾声了&#xff0c;今年ESG的发展状况非常两级分化。最极端者&#xff0c;有人觉得ESG要在2024年起飞的&#xff0c;毕竟今年三大交易所出台了《上市公司可持续发展报告指引》&#xff0c;“A股公司进入ESG信披新纪元”。而在另一个极端&#xff0c;有人认为ESG“将…

windows中docker安装redis和redisinsight记录

创建一个Redis运行容器&#xff0c;命令如下 docker run -it -d --name redis -p 6379:6379 redis --bind 0.0.0.0 --protected-mode no -d 代表Redis容器后台运行 --name redis 给创建好的容器起名叫redis -p 6379:6379 将容器的6379端口映射到宿主机的6379端口&#xff0c;注…

atcoder解题

#include <iostream> #include <vector>using namespace std;int main() {long long N, M;cin >> N >> M;vector<long long> X(M), A(M);long long totalStones 0;// 读入 X 和 Afor (int i 0; i < M; i) {cin >> X[i];}for (int i …

Vue:侦听属性

Vue&#xff1a;侦听属性 watch深度侦听异步任务 watch 在Vue中&#xff0c;允许用户在数据改变时&#xff0c;做出一定的处理。 语法&#xff1a; new Vue({watch:{属性名:{handler(newValue, oldValue){// 函数体} }} })当一个属性被写入watch中&#xff0c;每当这个属性…

《计算机原理与系统结构》学习系列——存储器(上)

系列文章目录 目录 存储器技术概要存储器层次cache&#xff0c;内存辅存存储器技术SRAM技术DRAM技术闪存磁盘存储器 局部性原理 高速缓存cache访存性能概念命中与缺失访存阻塞的周期数 cache基础&#xff1a;直接映射块号内存地址字段缺失缺失处理和写策略 全相联映射组相连映…

github高分项目 WGCLOUD - 运维实时管理工具

GitHub - tianshiyeben/wgcloud: Linux运维监控工具&#xff0c;支持系统硬件信息&#xff0c;内存&#xff0c;CPU&#xff0c;温度&#xff0c;磁盘空间及IO&#xff0c;硬盘smart&#xff0c;GPU&#xff0c;防火墙&#xff0c;网络流量速率等监控&#xff0c;服务接口监测&…

A021基于Spring Boot的自习室管理和预约系统设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…

【EasyExcel】EasyExcel导出表格包含合计行、自定义样式、自适应列宽

目录 0 EasyExcel简介1 Excel导出工具类设置自定义表头样式设置自适应列宽添加合计行 2 调用导出工具类导出Excel表3 测试结果 0 EasyExcel简介 在数据处理和报表生成的过程中&#xff0c;Excel是一个非常常用的工具。特别是在Java开发中&#xff0c;EasyExcel库因其简单高效而…

2024年11月09号Drawing Memory Models Review 2

So lets start with a piece of code that well be thinking about and take a few seconds to read it carefully and try to explain, in your own words, what this piece of code does.

【HarmonyOS】鸿蒙应用低功耗蓝牙BLE的使用心得 (二)

【HarmonyOS】鸿蒙应用低功耗蓝牙BLE的使用心得 &#xff08;二&#xff09; 一、前言 目前鸿蒙应用的实现逻辑&#xff0c;基本都是参考和移植Android端来实现。针对BLE低功耗蓝牙来说&#xff0c;在鸿蒙化的实现过程中。我们发现了&#xff0c;鸿蒙独有的优秀点&#xff0c…

2024年【流动式起重机司机】模拟考试及流动式起重机司机证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 流动式起重机司机模拟考试考前必练&#xff01;安全生产模拟考试一点通每个月更新流动式起重机司机证考试题目及答案&#xff01;多做几遍&#xff0c;其实通过流动式起重机司机模拟考试题很简单。 1、【多选题】( )和…

混合搜索与多重嵌入:一次有趣又毛茸茸的猫咪搜索之旅!(二)

这是继上一篇文章 “混合搜索与多重嵌入&#xff1a;一次有趣又毛茸茸的猫咪搜索之旅&#xff01;&#xff08;一&#xff09;” 的续篇。这这篇文章中&#xff0c;我们讲使用本地 Elasticsearch 部署来完成整个演示。这是一个简单的 Python Web 应用程序&#xff0c;展示了可…

算法【Java】—— 动态规划之路径问题

前言 本文章终点解析第一道题目【不同路径】和最后一道题目【地下城游戏】的动态规划思路&#xff0c;中间几道题目会很快过完&#xff0c;大家如果不熟悉动态规划的思路可以重点看一下这两道题目的解析。 不同路径 https://leetcode.cn/problems/unique-paths 解析&#xf…

FPGA实现串口升级及MultiBoot(五)通过约束脚本添加IPROG实例

本文目录索引 一个指令和三种方式通过约束脚本添加Golden位流工程MultiBoot位流工程验证example1总结代码缩略词索引: K7:Kintex 7V7:Vertex 7A7:Artix 7MB:MicroBlaze上一篇文章种总结了MultiBoot 关键技术,分为:一个指令、二种位流、三种方式、四样错误。针对以上四句话我…