01. JavaScript基础知识
一、JavaScript简介
JavaScript 是一门解释型编程语言,解释型编程语言指代码不需要手动编译,而是通过解释器边解释边执行。所以,要运行 JS,我们需要在计算机中安装 JS 的解释器。我们使用的浏览器已经集成了 JS 的解释器。JS 是一门函数式编程语言。在 JS 中,函数可以向其它类型的值一样赋值给任意变量,也可以作为参数传递给其它函数。JS是一门单线程的编程语言。JS 同一时间只能做一件事,一件事完成才会继续做另一件事。JS 是一门面向对象的语言。
二、JavaScript的编写位置
- 可以将 JS 编写到网页内部的 <script> 标签中;
- 可以将 JS 编写到外部的 JS 文件中,然后通过 <script> 标签进行引入
- 可以将 JS 代码编写到指定的属性中
<!DOCTYPE html>
<html>
<head>
<title>JavaScript</title>
<meta charset="UTF-8">
<!-- JS代码需要编写到script中 -->
<script>
// 在网页中弹出一个警告框
alert('Hello world!');
// 在控制台打印
console.log('你好,世界');
// 往文档(网页)中写入内容
document.write('世界,你好');
</script>
<!-- 通过外部js文件引入 -->
<script src="./script/script.js"></script>
</head>
<body>
<!-- 将JS代码写到指定的属性 -->
<br>
<button onclick="alert('按钮被点击了')">按钮</button>
<br>
<a href="javascript:alert('超链接被点击了')">超链接</a>
</body>
</html>
script.js 文件位于它的下一级目录【script】中:
alert('外部的JS文件执行了');
<script> 标签同时只能有一个作用,要么写 JS 代码,要么引入外部 JS 文件,不能同时写 JS代码 和 引入外部 JS文件
三、注释
注释中的内容会被解释器忽略,可以通过注释来对代码进行解释说明,也可以通过注释来注释掉不想被执行的代码;
- 单行注释:
//,注释内容从 // 始到本行和结尾 - 多行注释:
/* */,注释内容以 /* 开头,以 */ 结尾,可以注释多行
/*
1、JS中严格区分大小写
2、在JS中多个空格和换行会被忽略
3、JS中每条语句都应该以 ; 结尾
JS中具有自动添加;的机制,所以如果不写分号,解释器会自动添加
*/
alert(
123
); // alert()用来弹出一个警告框
四、关键字
JS 关键字指在 JS 中有特殊含义的单词。
| abstract | continue | finally | instanceof | private | this |
|---|---|---|---|---|---|
| boolean | default | float | int | public | throw |
| break | do | for | interface | return | typeof |
| byte | double | function | long | short | true |
| case | else | goto | native | static | var |
| catch | extends | implements | new | super | void |
| char | false | import | null | switch | while |
| class | final | in | package | synchronized | with |
五、字面量
字面量就是一个一个的值,字面量所表示的意思就是它的字面值,在 JS 中可以直接使用字面量;
| 字面量类型 | 说明 | 举例 |
|---|---|---|
| 数值型 | 数字 NaN 表示非数字 Infinity 表示无穷大 |
123、3.14 |
| 字符串 | 用引号引起的内容 | "123"、'abc' |
| 布尔值 | 布尔值,表示真假 | true、false |
| 未定义值 | 一个特殊的值,表示变量还没有赋值 | undefine |
| 空值 | 一个特殊的值,空值 | null |
console.log(123);
// typeof可以查看值的类型,返回的是一个字符串
console.log(typeof 123);
console.log(3.14);
console.log(typeof 3.14);
console.log(NaN)
console.log(typeof NaN);
console.log(Infinity)
console.log(typeof Infinity);
console.log('hello')
console.log(typeof 'hello');
console.log(true)
console.log(typeof true);
console.log(false)
console.log(typeof false);
console.log(undefined)
console.log(typeof undefined);
console.log(null)
console.log(typeof null);
六、变量
变量可以用来“存储”字面量,并且变量中存储的字面量可以随意的修改。通过变量可以对字面量进行描述。我们可以使用 let 或 var 关键字声明变量。变量中并不存储任何值,而是存储值的内存地址。
// 声明变量,并赋值
let x = 80;
console.log(x);
console.log(typeof x);
x = 'hello';
console.log(x);
console.log(typeof x);
使用 let 关键字声明变量有块作用域,而使用 var 关键字声明的变量没有块作用域;
七、常量
不可变的变量就是常量。在 JS 中用 const 关键字声明常量。常量只能赋值一次,重复赋值会报错。
// 在JS中使用const声明常量
const PI = 3.14;
console.log(PI);
八、标识符
在 JS 中,所有可以由我们自主命名的内容,都可以认为是一个标识符,例如:变量名、函数名、类名等等。使用标识符时,需要遵循以下的命名规范:
- 标识符只能含有字母、数字、下划线、$,且不能以数字开头
- 标识符不能是 JS 中的关键字和保留字
命名规范:
- 不建议使用内置的函数名或类名作为变量名
- 通常情况下,使用驼峰命名法,首字母小写,剩下每个单词开头大写
- 类名使用大驼峰命名法,每个单词的首字母大写
- 常用的字母全部大写多个单词之间使用下划线分隔
let bookName = 'HTML5权威指南';
let MAX_LENGTH = 200;
九、数据类型
JS 中的数据类型由原始值和对象共同组成。JS 中一共有 7 种原始值,它们分别是:数值(Number)、大整数(Bigint)、字符串(String)、布尔值(boolean)、空值(Null)、未定义(undefined)、符号(Symbol);原始值在 JS 中是不可变类型,一旦创建就不能修改(数据本身不能改变,变量可以指向其它数据)。
9.1、数值
在 JS 中所有整数和浮点数(小数)都是数值。在 JS 中数值并不是无限大的,当数值超过一定范围后会显示近似值。Infinity 是一个特殊的数值表示无穷。所以,在 JS 中进行一些精度比较高的运算时要十分注意。Nan 也是一个特殊的数值,表示非法的数值。使用 typeof 检查一个数值会返回 "number";
let a = 10;
console.log(a);
console.log(typeof a);
a = 3.14;
console.log(a);
console.log(typeof a);
a = 9999999999999911111;
console.log(a);
a = Infinity;
console.log(a);
console.log(typeof a);
a = NaN;
console.log(a);
console.log(typeof a);
9.2、大整数
大整数用来表示一些比较大的整数。大整数使用 n 结尾,理论上,它可以表示数字的范围是无限大的(受内存大小影响)。使用 typeof 检查一个大整数时,会返回一个 "bigint";
let a = 99999999999999999999999999999999999999999999999n;
console.log(a);
console.log(typeof a);
9.3、字符串
在 JS 中字符串需要使用引号引起来,引号可以是单引号,也可以是双引号,但是不要混的用。相同的引号间不能嵌套使用。使用 typeof 检查一个字符串时会返回 "string";
在 JS 中,使用“\” 进行转义。
| 转义字符 | 描述 |
|---|---|
| \b | 退格 |
| \r | 回车符 |
| \n | 换行符 |
| \t | 水平制表符 |
| \v | 垂直制表符 |
| \f | 换页 |
| \' | 单引号 |
| \" | 双引号 |
| \\ | 反斜杠 |
| \OOO | 八进制整数,范围:000~777 |
| \xHH | 十六进制整数,范围:00~FF |
| \uhhhh | 十六进制编码的 Unicode 字符 |
在 JS 中使用 ` 来表示模板字符串,模板字符串中可以嵌入变量。
let a = 'hello';
console.log(a);
console.log(typeof a);
a = '子曰:"君子不重则不威,学则不固。"';
console.log(a);
a = 'hello\tworld';
console.log(a);
let name = '冰翎';
a = `你好,${name}`;
console.log(a);
9.4、布尔值
布尔值主要用来逻辑判断。布尔值只有两个:true 和 false;使用 typeof 检查一个布尔值会返回 "boolean";
let bool = true;
console.log(bool);
console.log(typeof bool);
bool = false;
console.log(bool);
console.log(typeof bool)
9.5、空值
空值用来表示空对象。空值只有一个: null;使用 typeof 检查空值会返回 "object";
let a = null;
console.log(a);
console.log(typeof a);
9.6、未定义
当声明一个变量而没有赋值时,它的值就是 undefined,undefined 类型的值只有一个就是 undefined。使用 typeof 检查一个 undefined 类型的值时,会返回 "undefined"。
let a;
console.log(a);
console.log(typeof a);
9.7、符号
符号用来创建一个唯一的标识。使用 typeof 检查符号时会返回 "symbol"。
let c = Symbol();
console.log(c);
console.log(typeof c);
十、类型转换
类型转为是根据原有的数据创建出它所对应的要转换类型的数据,并不是直接将原有的类型直接转换为你要转换的类型;
10.1、类型转换—字符串
- 调用 toString()方法 将其它类型转换为字符串
- 由于 null、undefined 中没有 toString()方法,所以对这两个值调用 toString()方法 时会报错;
- 调用 String() 函数将其它类型转为字符串
- 对于拥有 toString()方法 的值调用 String()函数 时,实际上就是在调用 toString()方法;
- 对于 null,则直接转换为 "null";
- 对于 undefined,则直接转换为 "undefined";
// 调用toString()方法
let a = 10;
let b = a.toString();
console.log(a);
console.log(typeof a);
console.log(b);
console.log(typeof b);
let c = null;
console.log(c);
console.log(typeof c);
// 调用String()函数
let d = String(c);
console.log(d);
console.log(typeof d);
类型转为字符串是根据原有的数据创建出它对应的字符串值,并不是直接将原有的类型直接转换为字符串类型;
10.2、类型转换—数值
- 使用 Number()函数,将其它类型转为为数值;
- 如果字符串是一个合法的数字,会自动转换为对应的数据;
- 如果字符串不是合法的数字,则转换为 NaN;
- 如果字符串是 空串 或 纯空格 的字符串,则转换为 0;
- 布尔值:true 转换为 1,false 转换为 0;
- null 转换为 0;
- undefined 转换为 NaN;
- 使用 parseInt(),将一个字符串转换为一个整数;
- 解析时,会自左向右读取一个字符串,直到读取字符串中所有的有效的整数;
- 使用 parseFloat(),将一个字符串转换为浮点数;
// 合法数字的字符串 --> 对应的数值
let a = '123';
let b = Number(a);
console.log(a);
console.log(typeof a);
console.log(b);
console.log(typeof b);
// 不合法的数字的字符串 --> NaN
a = 'abc';
b = Number(a);
console.log(a);
console.log(b);
// '' --> 0
a = '';
b = Number(a);
console.log(a);
console.log(b);
// ' ' --> 0
a = ' ';
b = Number(a);
console.log(a);
console.log(b);
// true --> 1
a = true;
b = Number(a);
console.log(a);
console.log(b);
// false --> 0
a = false;
b = Number(a);
console.log(a);
console.log(b);
// null --> 0
a = null;
b = Number(a);
console.log(a);
console.log(b);
// undefined --> NaN
a = undefined;
b = Number(a);
console.log(a);
console.log(b);
a = "123.45px";
console.log(a);
b = parseInt(a);
console.log(a);
console.log(typeof a);
console.log(b);
console.log(typeof b);
b = parseFloat(a);
console.log(a);
console.log(typeof a);
console.log(b);
console.log(typeof b);
类型转为数值是根据原有的数据创建出它对应的数值,并不是直接将原有的类型直接转换为数值类型;
10.3、类型转换—布尔值
- 使用 Boolean()函数,将其它类型转换为布尔值;
- 非0的数字 和 Infinity,转换为 true;数字0 和 NaN,转换为 false;
- 非空字符串,转换为 true;空串,转换为 false;
- null 和 undefined 转换为 false;
// 非0数字 --> true
let a = -1;
b = Boolean(a);
console.log(a);
console.log(typeof a);
console.log(b);
console.log(typeof b);
// 0 --> false
a = 0;
b = Boolean(a);
console.log(a);
console.log(b);
// NaN --> false
a = NaN;
b = Boolean(a);
console.log(a);
console.log(b);
// Infinity --> true
a = Infinity;
b = Boolean(a);
console.log(a);
console.log(b);
// 非空字符串 --> true
a = 'abc';
b = Boolean(a);
console.log(a);
console.log(b);
// ' ' --> true
a = ' ';
b = Boolean(a);
console.log(a);
console.log(b);
// '' --> false
a = '';
b = Boolean(a);
console.log(a);
console.log(b);
// null --> false
a = null;
b = Boolean(a);
console.log(a);
console.log(b);
// undefine --> false
a = undefined;
b = Boolean(a);
console.log(a);
console.log(b);
类型转为布尔值是根据原有的数据创建出它对应的布尔值,并不是直接将原有的类型直接转换为布尔类型;
所有的表示空性的、没有的、错误的值都会转换为 false;
01. JavaScript基础知识的更多相关文章
- JavaScript 基础知识 - BOM篇
前言 本篇文章是JavaScript基础知识的BOM篇,如果前面的<JavaScript基础知识-DOM篇>看完了,现在就可以学习BOM了. 注意: 所有的案例都在这里链接: 提取密码密码 ...
- Javascript基础知识总结一
Javascript基础知识总结一 <!DOCTYPE html> <html> <head lang="en"> <meta chars ...
- 学习javascript基础知识系列第二节 - this用法
通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...
- 学习javascript基础知识系列第三节 - ()()用法
总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...
- JavaScript基础知识整理
只整理基础知识中关键技术,旨在系统性的学习和备忘. 1.在 JScript 中 null 和 undefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN ...
- JavaScript基础知识从浅入深理解(一)
JavaScript的简介 javascript是一门动态弱类型的解释型编程语言,增强页面动态效果,实现页面与用户之间的实时动态的交互. javascript是由三部分组成:ECMAScript.DO ...
- JavaScript基础知识必知!!!
JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型. JS作用:表单验证,减轻服务端的压力:添加页面动画效果:动态更改页面内容:Ajax网络请求. 下面简单介 ...
- JavaScript基础知识梳理,你能回答几道题?
在学习JavaScript的时候,总是这里学一点,那里学一点,很的很零星,很杂,没有很系统的去学习,感觉好像JavaScript的知识点都了解了,但是真正要说起来,又不知道从何说起! 最深刻的体会就是 ...
- JavaScript基础知识笔记
做前端几年了,一直疏于整理归纳,所以这两天把基础看了一遍,加上使用经验,整理了基础知识中关键技术,旨在系统性的学习和备忘.如果发现错误,请留言提示,谢谢! 重要说明:本文只列举基础知识点,中级和高级内 ...
- JavaScript——基础知识,开始我们的js编程之旅吧!
JavaScript基础第01天 1. 编程语言 编程语言: 可以通过类似于人类语言的"语言"来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言(Programming ...
随机推荐
- js之new的原理和源码
new的原理即作用: function Student(name,age){ this.name=name; this.age=age; } var stu=new Student("小明& ...
- 【NPDP专项练习】第六章 市场研究
第六章 市场研究 1.VOC也叫客户心声,指的是. A 选择一个单一的投资组合项目,并保证所有项目都在策略内 B 利用迭代在专家组中形成共识的决策 C 通过人工"商店"引导潜在客户 ...
- hyperfine spectra
!Hyperfine spectradefine int n xlet xlet name spect-'x'!file in 'name'.basfindget 3set mod x aset un ...
- .netcore webapi的返回值和过滤器
1.返回值. 1.1直接返回数据 1.2 数据+状态码 返回这种类型IActionResult 可以使用return OK(T).return NotFound(T) 1.3前两种的混合使用Actio ...
- QML调用C++程序
QML调用C++程序 1. 添加C++,MouseMemory文件(.h,.cpp) 2. 在main.cpp文件添加, qmlRegisterType<MouseMemory>(&quo ...
- MogDB 学习笔记之 --exchange partition
# 概念描述MogDB 提供了从分区交换的功能,如单表转化到一个分区中基本语法:ALTER TABLE...EXCHANGE PARTITION数据库版本# 测试验证## 1.环境准备``` miao ...
- HDLbits——Rotate100
verilog代码: // Build a 100-bit left/right rotator, with synchronous load and left/right enable. //A r ...
- Spark之详解及性能优化
一.spark简介 Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架. Spark是用Scala程序设计语言编写而成,运行于Java虚拟机(JVM)环境之上.目前支持如下程 ...
- vite vue插件打包配置
import { defineConfig, UserConfigExport, ConfigEnv } from "vite"; import externalGlobals f ...
- 4.docker安装mysql
下载mysql镜像 打开docker镜像仓库 https://hub.docker.com 我们下载官方镜像,点击打开 可以看到tags有很多不通版本的mysql 比如我想安装5.7版本的就可以使用 ...