JavaScript 学习日记(1)---初识JavaScript

初识JavaScript

文章目录

  • 初识JavaScript
    • 一、JavaScript 是什么?
    • 二、java 和JavaScript 的关系
    • 三、JavaScript 的组成
    • 四、JS的基本输入输出
  • ---> 单行注释
    • 五、js变量基本概念
    • 六、js基本数据类型
    • 七、js转义字符
    • 八、js类型转换
    • 九、运算符
  • END!


一、JavaScript 是什么?

我们之前在前端里面说过,前端三剑客是构成网页前端必备的三种技术,
HTML CSS JavaScript ,在其中,只有JavaScript是高级编程语言,而其他两种就不是编程语言.

我们可以好比为:

html: 网页的组成/内容的展示 --> 身体
css: 网页的样式/排版,布局美化 --> 衣服/化妆品
JavaScript: 动态效果/网页交互 --> 技能/行为

二、java 和JavaScript 的关系

有些编程基础的同学们可能会问,JavaScript和Java有什么关系吗?
其实答案是:
两者没有直接关系.当年差点合作.没谈成. 当年/现在java都是一门非常火爆的语言。

js的作者为了蹭java的热度. 所以给自己的语言取名为: JavaScript
硬要来说,语法上js更像C语言

我们再JavaScript的学习中 ,要学习:

1.写爬虫时.需要了解网页的组成,用什么标签/选择器

2.写后端数据.前后端交互时.怎么用js来传输信息

Script : 脚本


三、JavaScript 的组成

ECMA Script --> ES --> 简称ES,可以理解为是js的语法版本.最新版本是ES13.不过我们用不了那么新. 教学基于ES6

BOM – Browser object model --> 浏览器对象模型. 通过js来操作浏览器(弹窗/输入框)

DOM – Document object model --> 文档对象模型. 用js来操作网页内容 (网页又称为文档)

js的书写和css类似.也有内部/外部写法

内部写法在html中.写一对script标签.把js内容写里面

	<script> js代码 </script>

外部写法就是创建一个专门的js文件. 通过script里的src属性引入. 写该标签里的js代码无效

	<script src='js文件路径'></script>

js代码最好写在网页内容的最后/body最后代码从上往下执行的.如果位置不对.就可能出现先执行js再出现内容的情况

src除了本地文件外.还可以通过网络路径来导入
https://www.bootcdn.cn/

console.log的内容不是给用户看的.是给程序员自己看的. 所以它是在控制台显示

	1.按下F12 /右键检查 --> 选择控制台/console
	2.快捷键 ctrl + shift + j

四、JS的基本输入输出

首先,我们在学习python的时候,注释写法是

—> 单行注释

多行注释—>“‘’” 注释内容"“”

在JS里:
单行注释: // 注释内容
多行注释: /* 注释内容 */

输出语句:
document.write : 在网页里写一行内容.能够识别标签.字符串需用引号包裹.数字不用
语法:

		document.write(内容)

案例:
在这里插入图片描述

在这里插入图片描述

注意JS的输入可以识别标签,但是要求用''来进行包裹

alert: 弹窗,让网页显示一个弹窗
	语法:
		alert(''内容'')

案例:
在这里插入图片描述

在这里插入图片描述

console.log: 在控制台输出日志. 在控制台输出信息(主要用来调试测试内容)
	语法:
		console.log(内容)

案例:

在这里插入图片描述

在这里插入图片描述

输入语句:

	prompt: 在进入网页时.弹窗输入框.让用户输入. 输入框里可以放提示文本
	语法:
		prompt()
		prompt('提示文本)

案例:
在这里插入图片描述

在这里插入图片描述

可以用输入来赋值. prompt得到的数据为字符串类型

let name = prompt('请输入你的名字')
	alert('欢迎你'+name)

五、js变量基本概念

何为变量:

	一个用来存储数据的容器. 里面的数据可以改变
	把一段常用的数据保存起来,取个名字.方便后续使用

变量名规范:

		1.由数字,字母,下划线_,美元符号$组成 (中文不推荐)
		2.区分大小写Name name
		3.不要用关键字命名  if  for break
		4.见名知意

注意: python变量命名规则里不能用$符号

var/let = 声明符/标识符. 在声明变量前要加上.

let是es6新出的语法. 作用和var类似.不过有一些细节区别.

变量名的使用:
1.声明变量

		let 变量名	//  声明一个空变量,没有赋值
		
		let 变量名 = 变量值 // 声明一个变量,并赋值
	let age
	let name = '仁泽'

2.声明多个变量
	let 变量名=变量值,变量名=变量值
	let home='黑龙江',sex='男'

3.使用变量/输出变量
	输出语句(变量名)
	console.log(变量名)
	document.write(变量名)
	alert(变量名)

4.输出多个变量名
	输出语句(变量名,变量名)
	console.log(变量名,变量名)
	document.write(变量名,变量名)
	alert(变量名,变量名)

5.用输入给变量赋值
	let 变量名 = prompt()
	let age = prompt('请输入你的年龄')

注意:
1.直接写 变量名 = 变量值. 不写let不会报错,但不规范
2.变量如果声明了,没赋值. 它的值为undefined 未定义. 不会报错

六、js基本数据类型

为什么要区分数据类型: 为了更好的管理/区分/使用数据. 所以对数据进行分类

js中查看数据类型  --  typeof

console.log(typeof 数据)
console.log(name, typeof name)

number(数值类型)

主要用于数学计算,数值数字使用.它包含了整数,小数,正数,负数(不分int.float) --> 年龄/身高/金钱
	let 变量名 = 数值
	let age = 27
	let height = 148.5

string(字符串)

主要用来显示文字内容.用一对单' 双" 反` 引号包裹起来的数据 --> 姓名,性别,地址
	let 变量名 = '字符'
	let 变量名 = "字符"

	let name = '谢霆锋'
	console.log(name,typeof name)

	1.引号不能混用,必须单单 双双 反反
		let name = '麒麟"   // 报错

	2.反引号是作为模板字符串输出.让我们更好的输出带变量的数据. 模板字符串只能用反引号.不用单/双
		`字符 ${变量名} 字符`
		console.log(`你好.我叫${name} 我今年${age}岁`)

boolean(布尔类型)

布尔类型主要用于逻辑判断. 判断真/假.  只有两个值true/false
	let 变量名 = true
	let 变量名 = false
	let is_login = true
	console.log(is_login,typeof is_login)

undefined(未定义)

undefined是类型也是值.指的就是未定义.当声明变量未赋值时.它的值和类型都为undefined
	let 变量名
	let test
	console.log(test,typeof test)

null(空)

null和python里的None类似.表示未空,没有东西.输出类型为 空对象object
	let wife = null
	console.log(wifi,typeof wife)

七、js转义字符

在js中.有特别含义的字符.遇到它会特别处理
\n : 换行
\t : 制表符,缩进
\ : 正常输出斜杠
’ : 正常输入引号

js没有原始字符串.不能像python那样在字符串前加个r取消转义

八、js类型转换

在开发/学习过程中. 经常会遇到把一个数据转为其他数据类型再使用的情况.此时就用类型转换
	console.log(1+'1')  // 11 js把+识别为了拼接 1拼接'1'
    console.log(1-'1')  // js把-识别为了减法 1-1位0

隐式类型转换:
	程序的一些类型在运行过程中自动进行转换. 主要是字符串和数值交互时
	+号优先识别为拼接. 其他则为正常数值运算
强制类型转换:
		手动把数据转为指定的数据类型
	Number(数据) -- 把数据转为number类型
		如果数据转换失败.值为NaN. NaN也是number类型.表示的是非数字 Not a Number
			parseInt(数据) -- 把数据转为数值,只取整数
			parseFloat(数据) -- 把数据转为数值,保留小数
			String(数据)  -- 把数据转为string类型
			Boolean(数据) -- 把数据转为boolean类型. 转换后,有值为真,无值为假(0,-0,null,undefined)

九、运算符

运算符 --> 带有特定功能的符号

算数运算符:

	+ - * / %

逻辑运算符:

&&: 与运算 and 有多个条件时,都满足才为真
||: 或运算 or 有多个条件时,满足其一就为真
! : 非运算 not 杠精,取反

关系运算符:

	==  > <  >= <=

赋值运算符:

	= += -= *= /=

例如:
a+=b --> a = a+b
let i = 10
i+=6 --> i = i+6

单目运算符:

	++/--  自增/减1
	++在前,先自增,再赋值;  先+1,再执行
	++在后,先赋值,再自增;  先执行,再+1

	let i = 10
	i++
	++i

在这里插入图片描述

单独写i++/++i没区别.都会+1.但是放到输出语句时.就有区别


END!


更多优质文章点这里

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FDGaussian:又快又好的三维重建方案 | Gaussian Splatting和扩散模型超强联合

项目地址&#xff1a;https://qjfeng.net/FDGaussian/ 文章链接&#xff1a;https://arxiv.org/pdf/2403.10242 本文介绍了一种名为FDGaussian的新型两阶段框架&#xff0c;用于单张图像的三维重建。最近的方法通常利用预先训练好的二维扩散模型从输入图像生成可能的新视图&…

DARTS-: ROBUSTLY STEPPING OUT OF PERFORMANCE COLLAPSE WITHOUT INDICATORS

DARTS-&#xff1a;增加辅助跳跃连接&#xff0c;鲁棒走出搜索性能崩溃 论文链接&#xff1a;https://arxiv.org/abs/2009.01027 项目链接&#xff1a;GitHub - Meituan-AutoML/DARTS-: Code for “DARTS-: Robustly Stepping out of Performance Collapse Without Indicators…

RAG笔记:常见问题以及解决方法

1 内容缺失 知识库中缺少必要的上下文信息。当知识库没有包含正确答案时&#xff0c;RAG 系统可能会给出一个貌似合理但实际上错误的回答&#xff0c;而不是明确表示它不知道答案。 1.1 解决方法 1.1.1 设置阈值 在回答问题前先设定一个质量标准。如果召回内容达不到标准或…

大数据Hadoop生态圈体系视频课程

课程介绍 熟悉大数据概念&#xff0c;明确大数据职位都有哪些&#xff1b;熟悉Hadoop生态系统都有哪些组件&#xff1b;学习Hadoop生态环境架构&#xff0c;了解分布式集群优势&#xff1b;动手操作Hbase的例子&#xff0c;成功部署伪分布式集群&#xff1b;动手Hadoop安装和配…

真假“长文本”,国产大模型混战

文&#xff5c;郝 鑫 Kimi有多火爆&#xff1f;凭一己之力搅乱A股和大模型圈。 Kimi概念股连日引爆资本市场&#xff0c;多个概念股随之涨停。在一片看好的态势中&#xff0c;谁都想来沾个边&#xff0c;据光锥智能不完全统计&#xff0c;目前&#xff0c;至少有包括读客…

(二)BSQ,BIL,BIP存储格式的相互转换算法

环境&#xff1a;Windows10专业版 IDEA2021.2.3 jdk11.0.1 GDAL(release-1928-x64-gdal-3-5-2-mapserver-8-0-0) 系列文章&#xff1a; &#xff08;一&#xff09;PythonGDAL实现BSQ&#xff0c;BIP&#xff0c;BIL格式的相互转换 &#xff08;二&#xff09;BSQ,BIL,BIP存…

【中间件】docker数据卷

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;中间件 ⛺️稳中求进&#xff0c;晒太阳 1.数据卷&#xff08;容器数据管理&#xff09; 修改nginx的html页面时&#xff0c;需要进入nginx内部。并且因为内部没有编辑器&#xff0c;修改…

手把手教集成环信新版UIKit组件,快速构建Android应用

前言 环信新版UIKit已重磅发布&#xff01;目前包含单群聊UIKit、聊天室ChatroomUIKit&#xff0c;本文详细讲解Android端单群聊UIKit的集成教程。 环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 UI 组件库&#xff0c;提供各种组件实现会话列表、聊天界…

网络编程(Internet)

网络编程三要素 在网络通信协议下&#xff0c;不同计算机上运行的程序&#xff0c;可以进行数据传输。 IP地址 要想让网络中的计算机能够互相通信&#xff0c;必须为每台计算机指定一个标识号&#xff0c;通过这个标识号来指定要接收数据的计算机和识别发送的计算机&#xf…

【超图 SuperMap3D】【基础API使用示例】54、超图SuperMap3D -鼠标左键拖拽绘制圆

前言 引擎下载地址&#xff1a;[添加链接描述](http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id2524) 通过左键按下拖拽的方式在地图上进行贴地的圆绘制 完整代码拷贝直接本地运行即可查看效果效果 核心代码 // 绘制圆形 function startDrawCircleHand…

探究橡胶手套与乳胶手套的区别及选择指南

在探寻手部防护的世界里&#xff0c;橡胶手套与乳胶手套各自闪耀着独特的光芒。然而&#xff0c;对于许多人来说&#xff0c;这两者之间的细微差异仍然笼罩在一层迷雾之中。本文将如同一盏明灯&#xff0c;照亮这片迷雾&#xff0c;为您提供一份详尽的选择指南。 首先&#xff…

高性价比 惠海MOS管选型推荐 30V60V100V150V NMOS管和PMOS管

mos管选型建议&#xff1a; 需要抗电流冲击的&#xff0c;普通逻辑开关或者工作频率很低比如50kHZ以内的&#xff0c;电流非常大的情况比如实际工作6A以上的话一般建议选择平面mos管。6A以内的应用&#xff0c;大电流沟槽型mos管即可。 需要高频开关&#xff0c;比如500kHZ以…

2024/3/23打卡数组分割(第14届蓝桥杯)——二项式定理,快速幂

目录 题目 思路 代码 题目 思路 分析该题&#xff0c;要将集合 划分成两个子集 &#xff0c;且两个子集的和都是偶数。 可知&#xff1a;偶数 偶数 偶数&#xff1b;偶数 奇数 奇数&#xff1b;奇数 奇数 偶数&#xff1b; 分析可得&#xff1a;如果该集合的和为奇…

AtCoder Regular Contest 133 B - Dividing Subsequence 复杂版LIS最长上升子序列

B - Dividing Subsequence 题意&#xff1a; 数组a和数组b&#xff0c;找出最长公共子序列&#xff0c;使得每个b[ i ] 都是 a[ i ]的倍数。 思路&#xff1a; AtCoder Regular Contest 133 B(最长上升子序列) C(思维) - 知乎 这种题应把问题转化&#xff0c;把 要找的 和 …

父类子类构造方法调用示例

父类写无参构造&#xff0c;子类不写构造&#xff0c;实例化子类&#xff0c;会同时调用父类构造方法 public class Father {private String name;private int age;public Father() {System.out.println("父类无参构造");}} public class Son extends Father {priva…

prometheus监控oracle

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一份大厂面试资料《史上最全大厂面试题》&#xff0c;Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

element-ui实现各种证件照上传预览下载组件封装,图片上传回显及长宽自定义功能单个图片上传功能附带源码

element-ui实现证件照上传预览下载组件封装 效果&#xff1a; 参数说明 我只写了两个参数&#xff0c;后续有需求再对其组件进行丰富~ 参数说明fileListProp用来存储上传后后端返回的图片UR了uploadUrl图片上传返回的URL后端接口地址widthProp图片上传框的宽度heightProp图片…

人脸聚类原理和算法解释

人脸聚类是指将大量人脸图像根据它们的相似性分组到不同的群集中的过程。人脸聚类通常利用人脸的特征向量表示来度量人脸之间的相似性&#xff0c;并将相似的人脸图像聚集在一起。 以下是人脸聚类的一般原理&#xff1a; 人脸特征提取&#xff1a;对每张人脸图像提取特征向量。…

FPGA结构与片上资源

文章目录 0.总览1.可配置逻辑块CLB1.1 6输入查找表&#xff08;LUT6&#xff09;1.2 选择器&#xff08;MUX&#xff09;1.3 进位链&#xff08;Carry Chain&#xff09;1.4 触发器&#xff08;Flip-Flop&#xff09; 2.可编程I/O单元2.1 I/O物理级2.2 I/O逻辑级 3.布线资源4.其…

为什么静态成员函数不能是虚函数

在面向对象编程中&#xff0c;静态成员函数和虚函数都是常见的概念&#xff0c;但它们之间存在着本质上的差异。由于其特性上的差异&#xff0c;静态成员函数不能声明为虚函数。下面我们来探讨一下为什么静态成员函数不能是虚函数。 我在网上查到最多的说法是静态函数没有this指…
最新文章