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 /右键检查 --> 选择控制台/console2.快捷键 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 name3.不要用关键字命名  if  for break4.见名知意

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

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

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

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

		let 变量名	//  声明一个空变量,没有赋值let 变量名 = 变量值 // 声明一个变量,并赋值
	let agelet 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中查看数据类型  --  typeofconsole.log(typeof 数据)
console.log(name, typeof name)

number(数值类型)

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

string(字符串)

主要用来显示文字内容.用一对单' 双" 反` 引号包裹起来的数据 --> 姓名,性别,地址let 变量名 = '字符'let 变量名 = "字符"let name = '谢霆锋'console.log(name,typeof name)1.引号不能混用,必须单单 双双 反反let name = '麒麟"   // 报错2.反引号是作为模板字符串输出.让我们更好的输出带变量的数据. 模板字符串只能用反引号.不用单/双`字符 ${变量名} 字符`console.log(`你好.我叫${name} 我今年${age}岁`)

boolean(布尔类型)

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

undefined(未定义)

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

null(空)

null和python里的None类似.表示未空,没有东西.输出类型为 空对象objectlet wife = nullconsole.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 NumberparseInt(数据) -- 把数据转为数值,只取整数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,再执行++在后,先赋值,再自增;  先执行,再+1let i = 10i++++i

在这里插入图片描述

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


END!


更多优质文章点这里

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

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

相关文章

沪漂8年回郑州三年如何走上创业之路

大家好&#xff0c;我是大牛&#xff0c;目前人在郑州。 现在标签是&#xff1a; 创业者&#x1f697;&#x1f438; (注册有自己的公司&#xff0c;主要是为了自己的产品和接外包项目)独立开发者&#x1f468;&#x1f3fb;&#x1f4bb; (有自己的小项目)数字游民&…

干货分享之反射笔记

入门级笔记-反射 一、利用反射破泛型集合二、Student类三、获取构造器的演示和使用1.getConstructors只能获取当前运行时类的被public修饰的构造器2.getDeclaredConstructors:获取运行时类的全部修饰符的构造器3.获取指定的构造器3.1得到空构造器3.2得到两个参数的有参构造器&a…

Quartus II仿真出现错误

ModelSim executable not found in D:/intelFPGA/18.0/quartus/bin64/modelsim_ase/win32aloem/ Error. 找不到modelsim地址&#xff0c;原来是我下载了.exe,但没有双击启动安装ase文件夹呀&#xff01;&#xff01;&#xff01;&#xff01;晕&#xff0c;服了我自己

常见测试技术都有哪些?

测试技术是用于评估系统或组件的方法&#xff0c;目的是发现它是否满足给定的要求。系统测试有助于识别缺口、错误&#xff0c;或与实际需求不同的任何类型的缺失需求。测试技术是测试团队根据给定的需求评估已开发软件所使用的最佳实践。这些技术可以确保产品或软件的整体质量…

前端面试拼图-数据结构与算法(二)

摘要&#xff1a;最近&#xff0c;看了下慕课2周刷完n道面试题&#xff0c;记录下... 1. 求一个二叉搜索树的第k小值 二叉树(Binary Tree) 是一棵树 每个节点最多两个子节点 树节点的数据结构{value, left?, right?} 二叉树的遍历 前序遍历&#xff1a;root→left→right 中…

视觉轮速滤波融合1讲:理论推导

视觉轮速滤波融合理论推导 文章目录 视觉轮速滤波融合理论推导1 坐标系2 轮速计2.1 运动学模型2.2 外参 3 状态和协方差矩阵3.1 状态3.2 协方差矩阵 4 Wheel Propagation4.1 连续运动学4.2 离散积分4.2.1 状态均值递推4.2.2 协方差递推 5 Visual update5.1 视觉残差与雅可比5.2…

【C语言】【Leetcode】70. 爬楼梯

文章目录 题目思路&#xff1a;简单递归 > 动态规划 题目 链接: link 思路&#xff1a;简单递归 > 动态规划 这题类似于斐波那契数列的算法&#xff0c;结果其实就是到达前一步和到达前两步的方法之和&#xff0c;一直递归到n1和n2时就行了&#xff0c;但是这种算法有个…

今天聊聊Docker

在数字化时代&#xff0c;软件应用的开发和部署变得越来越复杂。环境配置、依赖管理、版本控制等问题给开发者带来了不小的挑战。而Docker作为一种容器化技术&#xff0c;正以其独特的优势成为解决这些问题的利器。本文将介绍Docker的基本概念、优势以及应用场景&#xff0c;帮…

C++基础之继承续(十六)

一.基类与派生类之间的转换 可以把派生类赋值给基类可以把基类引用绑定派生类对象可以把基类指针指向派生类对象 #include <iostream>using std::cin; using std::cout; using std::endl;//基类与派生类相互转化 class Base { private:int _x; public:Base(int x0):_x(…

Amuse .NET application for stable diffusion

Amuse github地址&#xff1a;https://github.com/tianleiwu/Amuse .NET application for stable diffusion, Leveraging OnnxStack, Amuse seamlessly integrates many StableDiffusion capabilities all within the .NET eco-system Welcome to Amuse! Amuse is a profes…

CAPL - 如何实现弹窗提示和弹窗操作(续)

目录 函数介绍 openPanel closePanel 代码示例 1、简单的打开关闭panel面板

自动驾驶-如何进行多传感器的融合

自动驾驶-如何进行多传感器的融合 附赠自动驾驶学习资料和量产经验&#xff1a;链接 引言 自动驾驶中主要使用的感知传感器是摄像头和激光雷达&#xff0c;这两种模态的数据都可以进行目标检测和语义分割并用于自动驾驶中&#xff0c;但是如果只使用单一的传感器进行上述工作…

文献速递:文献速递:基于SAM的医学图像分割--SAM-Med3D

Title 题目 SAM-Med3D 01 文献速递介绍 医学图像分析已成为现代医疗保健不可或缺的基石&#xff0c;辅助诊断、治疗计划和进一步的医学研究]。在这一领域中最重要的挑战之一是精确分割体积医学图像。尽管众多方法在一系列目标上展现了值得称赞的有效性&#xff0c;但现有的…

C/C++ 语言中的 ​if...else if...else 语句

C/C 语言中的 ​if...else if...else 语句 1. if statement2. if...else statement3. if...else if...else statementReferences 1. if statement The syntax of the if statement is: if (condition) {// body of if statement }The code inside { } is the body of the if …

javaScript——BFS结合队列求迷宫最短路径

这里推荐先去看下B站这个老师讲的BFS迷宫问题&#xff0c;只用看前五分钟就能懂用BFS队列实现的原理。[POJ] 3984 迷宫问题 BFS_哔哩哔哩_bilibili 问题描述&#xff1a;由m*n的矩阵构成了一个迷宫&#xff0c; 矩阵中为1的元素表示障碍物&#xff0c;不能走&#xff0c;为0表示…

AcWing 830. 单调栈

解题思路 对于将要入栈的元素来说&#xff0c;在对栈进行更新后&#xff08;即弹出了所有比自己大的元素&#xff09;&#xff0c;此时栈顶元素就是数组中左侧第一个比自己小的元素&#xff1b; 对于将要入栈的元素来说&#xff0c;在对栈进行更新后&#xff08;即弹出了所有比…

【干货】无源滤波器设计讲解,工作原理+设计步骤

今天给大家分享的是&#xff1a;无源模拟滤波器针对很多入门小白不懂滤波器设计&#xff0c;一些老工程师上班很多年有的也不懂得总结知识点&#xff0c;以及想学习不知道怎么系统学习的这一类人群&#xff0c;前方知识点来袭&#xff0c;请君放心食用~ 在信号处理领域&#x…

Git基础(25):Cherry Pick合并指定commit id的提交

文章目录 前言指定commit id合并使用TortoiseGit执行cherry-pick命令 前言 开发中&#xff0c;我们会存在多个分支开发的情况&#xff0c;比如dev&#xff0c;test, prod分支&#xff0c;dev分支在开发新功能&#xff0c;prod作为生产分支已发布。如果某个时候&#xff0c;我们…

基于stm32与TJC3224T124_011串口屏的PID调参器(附完整工程)

电赛在即&#xff0c;每次比赛调PID都是一件比较繁琐的事。每次都要在程序中改完再烧录到板子上&#xff0c;特别耗时。正好最近发现实验室的一块串口屏比较好玩。 于是就做了这个调PID的东西。它可以通过串口直接修改PID的值&#xff0c;从而达到快速调PID的目的。下面我将完整…

论文阅读---VITC----Early Convolutions Help Transformers See Better

论文题目&#xff1a;Early Convolutions Help Transformers See Better 早期的卷积网络帮助transformers性能提升 vit 存在不合格的可优化性&#xff0c;它们对优化器的选择很敏感。相反现代卷积神经网络更容易优化。 vit对优化器的选择[40](AdamW [27] vs. SGD)&#xff0…