关键词:
文章目录
一:JavaScript简介
(1)JavaScript概述
JavaScript:JavaScript诞生于1995年,它的出现主要是用于处理网页中的前端验证。所谓的前端验证,就是指检查用户输入的内容是否符合一定的规则。为了解决前端验证的问题,当时的浏览器巨头NetScape(网景)公司就开发出一种脚本语言,起初命名为LiveScript,后来由于SUN公司的介入更名为了JavaScript,但注意Java和JavaScript的关系就像老婆和老婆饼的一样,没有任何关系。下面是JavaScript的发展历程
年份 | 事件 |
---|---|
1995年 | 网景公司开发出了JavaScript |
1996年 | 微软发布了和JavaScript兼容的JScript |
1997年 | ECMAScript第1版 |
1998年 | ECMAScript第2版 |
1998年 | DOM Level1的制定 |
1998年 | 新型语言DHTML登场 |
1999年 | ECMAScript第3版 |
2000年 | DOM Level2的制定 |
2005年 | 新型语言AJAX登场 |
2009年 | ECMAScript 第5版 |
2009年 | 新型语言HTML5登场 |
(2)JavaScript特点
JavaScript特点:
- 解释型语言:无需编译直接执行,但运行速度较慢
- 动态语言:动态语言中一切内容都是不确定的,性能要比静态语言差
- 语法结构类似于Java:像
for
、if
等结构和Java基本是一致的,所以如果有Java基础的话学起来比较轻松,但Java和JavaScript也只是看起来像而已 - 基于原型的面向对象:后面会说
- 严格区分大小写:
(3)JavaScript运行过程
JavaScript运行过程:如下图
浏览器有如下两个引擎
- 渲染引擎:解析HTML和CSS,也即“内核”
- JS引擎:也即JS解释器,Chrome中为V8
(4)JavaScript组成
JavaScript组成:一个完整的JavaScript应该由以下三个部分组成
- ECMAScript:JavaScript的语法
- DOM:页面文档对象模型,对页面中的元素进行操作
- BOM:浏览器对象模型,对浏览器窗口进行操作
(5)JavaScript的引入方式和基本使用
JavaScript的引入方式和基本使用:和CSS一样,JavaScript也有三种引入方式,分别是行内式、内嵌式和外部式。其中第三种方式最为常用,介绍如下
首先创建一个test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<div>
你好JavaScript
</div>
</body>
</html>
建立一个JavaScript文件javascript.js
,使用alert("Hello JS")
让浏览器在打开时弹出一个对话框并显示"Hello JS"
- 注意:在JavaScript中单引号和双引号都表示字符串
alert("Hello JS")
然后在test.html
中通过script
引入javascript.js
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<script src="javascript.js"></script>
</head>
<body>
<div>
你好JavaScript
</div>
</body>
</html>
打开浏览器效果如下
(6)JavaScript的注释
JavaScript的注释:分为如下两种,这和Java一致
// JavaScript单行注释
/*
JavaScript多行注释
*/
alert("Hello JS")
(7)JavaScript的输出
①:弹窗输出
前文已经展示,使用alert()
函数即可,但注意弹窗输出一般不会轻易使用,因为频繁使用弹窗会降低用户的使用体验
②:控制台输出
如下,使用console
向控制台输出信息
console.log()
:输出日志信息console.info()
:输出一条消息console.warn
:输出警告信息csonsole.error
:输出一条错误
打开浏览器调试工具,然后查看控制台
③:页面输出
可以使用document.write()
向页面输出一句话
document.write("Hello JS By document.write")
二:JavaScript基础语法
- 注意:由于JavaScript和Java部分内容相似,所以介绍时可能会一笔带过甚至不介绍,这里重点介绍它们之间不一样的地方
(1)标识符与关键字
标识符:JavaScript标识符命名建议规则如下
- 第一个字符必须是一个字母、
_
或$
- 其它字符可以是字母、下划线、美元符号或数字
- 按照惯例,ECMAScript 标识符采用驼峰命名法
- 标识符不能是关键字和保留字符
关键字:JavaScript关键字如下,以下关键字不能用作标识符
保留字符:JavaScript保留字符如下,以下保留字符不能用作标识符
(2)变量
变量:在JavaScript中也是需要先声明变量然后再赋值的,如下
var name = "张三";
var age = 18;
console.log("name:", name);
console.log("age:", age);
但与Java这种静态语言有所不同的是,JavaScript是一门动态语言,这意味着JavaScript的变量类型是程序在运行的过程中才能确定的(这也是为什么它声明变量时只需要一个关键字var
),并且随着程序的运行变量的类型也可能随时发生变化
var name = "张三";
var age = 18;
console.log("name:", name);
console.log("age:", age);
console.log("\\n");
name = 18
age = "张三"
console.log("name:", name);
console.log("age:", age);
(3)数据类型
数据类型:JavaScript中共有如下五种基本数据类型
number
: 不区分整数和小数boolean
:true
为真;false
为假string
undefined
:表示未定义的值(唯一值)null
:空值(唯一值)
①:number
进制表示:
var a = 192; // 十进制数
var b = 0o14; // 八进制数
var c = 0xa; // 十六进制
var d = 0b10; // 二进制数
console.log(a);
console.log(b);
console.log(c);
console.log(d);
特殊的数字:
infinity
:表示无穷大,超过此范围就会返回infinity
-infinity
:表示无穷小,超过此范围就会返回-infinity
NaN
:表示不是数字(可以使用isNaN()
函数判定是否为非数字)
console.log(Number.MAX_VALUE);
console.log(Number.MIN_VALUE); // 表示最小的正数
console.log(isNaN('hello'- 10));
②:string
单双引号表示字符串均可:
console .log('Hello World!');
console .log("Hello World!");
转义字符:
转义字符 | 含义 |
---|---|
\\n | 换行 |
\\\\ | 斜杠 |
\\t | 制表 |
\\b | 空格 |
\\r | 回车 |
console .log("我的名字叫做\\"Michael Jackson\\"");
求字符串长度:
var str = "HelloBY";
console.log(str.length);
字符串拼接:
var str1 = "Hello";
var str2 = "World";
var str3 = str1 + str2;
console.log(str3);
console.log(str1 + "World");
字符串比较: 直接使用==
即可
var str1 = "Hello";
var str2 = "World";
var str3 = str1 + str2;
console.log(str3 == "HelloWorld");
③:boolean
JavaScript中布尔类型只能取true
或false
:
var a = true;
var b = false;
console.log(typeof (a));
console.log(b)
JavaScript中布尔类型会发生隐式转换,true
和false
参与运算时分别会看作1和0
var a = true;
var b = false;
console.log(a + 1);
console.log(b - 1);
④:undefined
如果一个变量在定义的时候没有初始化那么它就是undefined
的:
undefined
和字符串、数字运算效果如下:
var a;
console.log(a + "str");
console.log(a + 10);
⑤:null
null
表示当前的变量是一个空值
var a = null;
console.log(a);
(4)运算符
运算符:JavaScript中的运算符和Java中的运算符基本一致,这里不再详细介绍
- 算数运算符:
+
-
**
/
%
- 赋值运算符:
=
+=
-=
*=*
/=
%=
- 自增自减运算符:
++
--
- 比较运算符:
<
>
<=
>=
==
:比较是否相等(会进行隐式类型转换)!=
===
:(不会进行隐式类型转换)!==
- 逻辑运算符:
&&
||
!
- 位运算符:
&
|
~
^
- 移位运算符:
<<
>>
>>>
(5)语句
语句:JavaScript中的条件语句、循环语句与Java基本一致,这里不再介绍
必备前端基础知识-第三节2:javascript数组函数和对象(代码片段)
文章目录一:数组二:函数三:对象一:数组数组:JavaScript中的数组和Java中的ArrayList有点相似,可以动态扩容,并且由于它是动态类型的语言,所以数组内的元素类型不要求一定是相同的创建数组... 查看详情
必备前端基础知识-第三节3:javascript之dom和bom(代码片段)
文章目录一:WebAPI概述二:DOM(1)获取元素(2)事件(3)操作元素A:获取(修改)元素内容B:获取(修改)元素属性C:获取(修改)表单元素属性D:获取... 查看详情
web前端开发笔记——第四章javascript程序设计第三节数据类型(代码片段)
目录一、基本数据类型(一)String类型(二)Number类型1、字面量2、无穷大3、非数值(三)Boollean类型(四)Undefined类型和Null类型二、引用数据类型(一)Object类型(二)数组类型... 查看详情
第三节2:深度学习必备组件之损失函数和激活函数(代码片段)
文章目录一:损失函数(1)均方误差损失(MSE)(2)交叉熵损失(CrossEntropy)二:激活函数(1)tanh(2)ReLU(3)LeakyReLU(4& 查看详情
第三节2:深度学习必备组件之损失函数和激活函数(代码片段)
文章目录一:损失函数(1)均方误差损失(MSE)(2)交叉熵损失(CrossEntropy)二:激活函数(1)tanh(2)ReLU(3)LeakyReLU(4& 查看详情
第三节1:深度学习必备组件之数据集处理和参数初始化(代码片段)
文章目录一:数据集的处理(1)数据集划分(2)数据集验证(3)标准化和归一化二:模型参数的初始化(1)梯度消失和梯度爆炸(2)模型参数初始化方法①:Xavier初始化②ÿ... 查看详情
javascript简介(第三节)
1.try..catch..<body><script>functionmyFunction(){try{varx=document.getElementById("demo").value;//取值if(x=="") throw"值为空"; &n 查看详情
第三节4:深度学习必备组件之tensorboard和标准化技术(代码片段)
文章目录一:TensorBoard(1)TensorBoard介绍(2)Pytorch安装TensorBoard(3)TensorBoard使用(4)服务器tensorboard本地显示(5)AutoDL等算力平台tensorboard使用二 查看详情
第三节3:深度学习必备组件之优化器和优化算法(代码片段)
文章目录一:优化算法(1)优化算法概述(2)梯度下降法二:优化器一:优化算法(1)优化算法概述优化算法:对于深度学习问题,我们通常会先定义损失函数。一旦我们有了损失函... 查看详情
javascript第三节课
1.字符串(stfing)2.数值(number)3.变量用var运算符加变量名字定义。4布尔值只有true和false二种(boolean).5.对象(object).Array数组(object)6.查看数据类型(typeof).7.转换成数字有(parseInt()他只认整数)(parseFloat()他只认数字)8... 查看详情
javascript设计模式:面向对象编程(第三节)
一、继承 js并没有继承这一个现有的机制,所以我们所说的继承是通过JS本身的机制去实现的。1、类式继承 1//类式继承23//父类4functionSuperClass(){5this.superValue=true6}78//为父类原型添加方法9SuperClass.prototype.getSuperValue=function(ar... 查看详情
js万字整理javascript相关基础技术面试题总结-前端面试必备-基础知识总结-秋招冲鸭(代码片段)
文章目录1.变量声明与类型1.1varletconst区别1.2数据类型1.3值类型与引用类型的区别1.4typeof能判断哪些类型1.5判断数据类型的方式1.6`===`与`==`1.7truly变量与falsely变量1.8强制类型转换和隐式类型转换1.9语句... 查看详情
指令系统-第三节1:x86汇编语言基础
本文参考内容(x86汇编快速入门),结合王道视频课整理如下文章目录一:高级语言、汇编语言、机器语言二:汇编程序简单入门三:什么是x86架构四:x86指令结构(1)x86的汇编层表示(2)x86指令的机器级结构(3)x86操作数来... 查看详情
第三节:作用域链
(转自老惠的博客) JavaScript采用的是静态作用域规则,也叫词法作用域,其解析过程是按照从上到下、从左到右的顺序加载,并分为两个阶段:预编译期(预处理)和执行期。预编译期对代码块中所有声明的变量和函数进行处... 查看详情
第三节:作用域链
JavaScript采用的是静态作用域规则,也叫词法作用域,其解析过程是按照从上到下、从左到右的顺序加载,并分为两个阶段:预编译期(预处理)和执行期。预编译期对代码块中所有声明的变量和函数进行处理。注意关键字... 查看详情
第三节:java数据结构预备知识之泛型
上一节内容讲时间和空间复杂度:(王道408考研数据结构)第一章绪论-第二节2:算法的时间复杂度和空间复杂度注意:泛型是Java语法中比较难掌握的部分,所以了解即可文章目录一:什么是泛型二:泛型语法(1)定义·(2)使用... 查看详情
全栈必备javascript基础
JavaScript来了喔家ArchiSelf1995年,诞生了JavaScript语言,那一年,我刚刚从大学毕业。在今年RedMonk推出的2017年第一季度编程语言排行榜中,JavaScript排第一,Java第二,Python反超PHP排第三,PHP第四,C#和C++并列第五。RedMonk排名的主要... 查看详情
webpack插件丨前端基础必备
1.webpack插件的作用通过安装和配置第三方的插件,可以拓展webpack的能力,从而让webpack用起来更方便。最常用的webpack插件有如下两个:①webpack-dev-server⚫类似于node.js阶段用到的nodemon工具⚫每当修改了源代码,webpa... 查看详情