一文读懂JavaScript(JS)基础知识大全

17,222次阅读
没有评论

共计 8590 个字符,预计需要花费 22 分钟才能阅读完成。

简介

JavaScript 是世界上最流行的编程语言。
这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。
JavaScript 是脚本语言
JavaScript 是一种轻量级的编程语言。
JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。

JavaScript 与 Java 的区别

JavaScript 与 Java 是两种完全不同的语言,无论在概念上还是在设计上。
Java 是更复杂的编程语言,由 Sun 公司发明,现在属于 Oracle 公司。
ECMAScript—ES, 是 JavaScript 标准的官方名称。
JavaScript 由工作于 Netscape 的 Brendan Eich。

ES 简介

1997 年,JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA)。第 39 技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义”(http://www.ecma-international.org/memento/TC39.htm)。由来自 Netscape、Sun、微软、Borland 和其他一些对脚本编程感兴趣的公司的程序员组成的 TC39 锤炼出了 ECMA-262,该标准定义了名为 ECMAScript 的全新脚本语言。
在接下来的几年里,国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。
ES6,全称 ECMAScript 6.0,是 JavaScript 的下一个版本标准,2015.06 发版。
ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。

如何编写 JS

1.1、页面嵌入

页面嵌入,一般情况下是在 head 标签中嵌入 script 标签,该标签可以直接在开始标签和结束标签之间编写 JS 代码,也可以导入 / 引入外部的 JS 文件;也可以在 body 标签中或 body 标签之后嵌入 script 标签,编写代码。

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>helloworldtitle>
		script>
			
			
			function helloWorld()
			{
				
				alert("hello JS");
				
				console.log("Hello  JS");
			}
			
			
			helloWorld();
			
		script>
	head>
	body>
		
	body>
html>

1.2、JS 注释

除了 javadoc 专用注释以外,和 Java 中的注释一样使用,此处省略。

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>body jstitle>
		
	head>
	body>
		
		script>
			function hello()
			{
				console.log("hello  JavaScript")
			}
			
			hello()
			
		script>
	body>
	
	script>
		function world()
		{
			console.log("JS  World")
		}
		world()
	script>
html>

1.4、独立 js 文件使用

单独创建一个后缀为 *.js 格式文档,在该文档中编写需要的 JS 代码,这种写法,一般是,该 js 代码是由多个 HTML 页面需要引用 / 共用,编写以后,通过

function hello()
{console.log("Hello World  JavaScript");
}

// 调用函数 hello()
hello()
DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>外部 JS 文档引入title>
		script src="../js/demo.js">script>
	head>
	body>
	body>
html>

变量

变量的命名和声明与 Java 一样,也是区分大小写,编写规范和 Java 一样,此处省略。
和 Java 不一样的是如果变量声明后,没有给值,此时该变量的值为 undefined。
JS 中变量的声明格式:
var 变量名;全局变量推荐使用 var
let 变量名; 一般定义块级变量使用 let
const 变量名;这是定义 / 声明的常量,JS 中的常量定义后立刻初始化

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>变量title>
		script>
			
			var  a = 123;
			
			let  b = "hello";
			
			const c = false;
			var A = "world";
			
			let a1 = "123";
			let a2 = "3";
			
			let b1;
			
			
			document.write(a);
			
			document.write(b);
			document.write(c,"
"
); document.write(c+"
"
); document.write(`a1 = ${a1}
`
); document.writeln(A) document.write(a1+a2); console.log(a1+a2); document.write(b1);
script> head> body> body> html>

一文读懂 JavaScript(JS)基础知识大全

数据类型

JS 中数据类型分为基本数据类型 (数值类型) 和引用数据类型 (对象类型)。
一文读懂 JavaScript(JS)基础知识大全

1.1、基本数据类型

值类型 (基本数据类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未
定义(Undefined)、Symbol。

1.1.1、String

字符串类型,在 JS 中单引号’‘、双引号 ” “、格式化 “ 都是字符串类型,格式化符合和单引号双引号的区别是,单引号双引号中所有的数据都是字符串,并按照原来的样子进行输出,而格式化符号中可以包含变量的调用以及输出,调用的格式是 ${变量名}

1.1.2、Number 数值类型

数值 / 数字类型包括整数型、浮点型。
typeof 表示获取变量或数据的类型

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>获取数据类型title>
	head>
	body>
		script>
			
			var  a = 123;
			let  b = 'hello';
			const c = true;
			
			
			console.log(typeof a);
			console.log(typeof b);
			console.log(typeof c);
			console.log(typeof 3.14);
			console.log(typeof "world");
			console.log(typeof `abc`);
			
			
		script>
	body>
html>

1.1.3、Undefined 未定义的值

Undefined 这个值表示变量不含有值 / 表示变量没有值。

1.1.4、Null 空值

可用于判断某个变量是否为 null

1.1.5、Symbol

符号型,标记型
前言:
ES5 以及之前的对象的属性名都是字符串,容易造成命名冲突,即重名。
概述
ES6 中添加了一种原始数据类型 Symbol
特点:
1、Symbol 属性对应的值是唯一的,解决了命名冲突的问题。
2、Symbol 值不能与其他数据进行计算,包括同字符串拼接。
3、forin、forof 遍历时,不会遍历 Symbol 属性。
注意:ES6 引入了一种新的数据类型 Symbol,该类型表示独一无二的值,最大的用法是用来定义对象的唯一性属性名,其永远不会重复。

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>symboltitle>
	head>
	body>
		script>
			
			
			console.log(Symbol());
			
			var a = Symbol();
			console.log(a);
			
			var b = "abc";
			var c = "abc";
			
			console.log(b == c);
			
			var d = Symbol("abc");
			var e = Symbol("abc");
			
			console.log(d === e);
			
			let a1 = 123;
			let a2 = "123";
			
			
			console.log(a1 == a2);
			
			console.log(a1 === a2);
			
		script>
	body>
html>

1.2、引用数据类型

引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。

1.2.1、Object 对象

Object 对象引用数据类型。

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>Objecttitle>
	head>
	body>
		script>
			console.log(Object);
			
			var a = new Object();
			console.log(a);
			
			var b = new String();
			console.log(b);
			
			var c = new Array();
			console.log(c);
		script>
	body>
html>

1.2.2、数组 Array

格式:
1、修饰符 数组名 = new Array(小括号中元素根据自己的需求可有可无);
2、修饰符 数组名 = [元素 1,…,元素 N];
元素: 数组中存放的每一个数据
长度: 数组中存放的元素个数,可以通过 数组名.length 获取数组长度。
索引 / 下标: 元素在数组中的存放位置,数组索引从 0 开始,到 数组长度 - 1 结束,即 0 ~ 数组
名.length – 1

一维数组

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>数组title>
	head>
	body>
		script>
			
			
			
			var  a = new Array(123,321,true,"hello","world");
			
			console.log(a);
			
			
			var  b = ["hello",3.14,false,Symbol()];
			
			console.log(b);
			
			
			var c = new Array();
			c[0] = 678;
			c[1] = "hello";
			console.log(c);
			
			
			
			
			
		script>
	body>
html>

二维数组

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>二维数组title>
		script>
			
			var  a = [[123,"hello"],[true,"world",3.14]];
			
			
			for(let i = 0;i  a.length;i++)
			{
				for(let j = 0;j  a[i].length;j++)
				{
					console.log(a[i][j]);
				}
			}
			
			console.log("-----------");
			
			
			for (let s of a)
			{
				for (let t of s)
				{
					console.log(t);
				}
			}
			
			console.log("-----------");
			
			
			for (let i in a)
			{
				for (let j in a[i])
				{
					console.log(a[i][j]);
				}
			}
			
		script>
	head>
	body>
	body>
html>

1.2.2.1、forof 循环

格式:
for(let 元素变量名 of 数组或集合对象)
{
循环体
}
如果元素变量名前面使用了 let,则表示该变量只能在当前的 for 语句中使用,是一个块级变量,否则是全局变量。
forof 相当于 Java 中的 foreach。

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>foroftitle>
	head>
	body>
		script>
			var  a = new Array(123,"hello",true,6.78);
			
			for(abc of a)
			{
				console.log(abc);
			}
		script>
	body>
html>

1.2.2.2、forin 循环

格式:
for(let 下标变量名 / 索引变量名 in 数组或集合对象)
{
循环体
}
备注:
1、forin 中的下标 / 索引是 Number 类型。
2、如果下标变量名 / 索引变量名前面使用了 let,则表示该下标变量名 / 索引变量名只能在当前的 for 语句中使用,是一个块级变量,否则是全局变量。
forof 与 forin 的区别:
1、forof 小括号中 of 关键字前面是元素的变量名;而 forin 小括号中 in 关键字前面是元素的下标 / 索引。
2、forof 小括号中的关键字是 of;forin 小括号中的关键字是 in。

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>foroftitle>
	head>
	body>
		script>
			var  a = new Array(123,"hello",true,6.78);
			
			for(abc of a)
			{
				console.log(abc);
			}
			
			console.log("--------------");


			
			for (let i in a) 
			{
				console.log(a[i]);
			}
			
			
			
		script>
	body>
html>

1.3、值类型 (原始类型) 和引用类型:

值类型 (原始类型) 数据:
类型包含: String、Number、Boolean、Undefined、Null
内存分布:栈内存中
值类型传递的是值。
引用类型数据:
类型包含: 除值类型以外
内存分布:堆内存区
引用类型数据传递的是引用地址,和 java 中一样。

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>datatypetitle>
	head>
	body>
		script>
			var a = new Array(123,"hello");
			
			var b = 123;
			
			var c = b;
			
			var d = a;
			
			
			c = 678;
			
			
			d[0] = "world";
			
			console.log("a =",a);
			console.log("b =",b);
			console.log("c =",c);
			console.log("d =",d);
			
			
			var abc = 123;
			console.log("abc---",typeof abc);
			abc = "hello";
			console.log("abc===",typeof abc);
			abc = true;
			console.log("abc***",typeof abc);
			
			
		script>
	body>
html>

函数

函数声明的格式:
function [函数名](形参 1,…, 形参 N)
{
函数体
}
调用:
函数名 ([实参 1, …, 实参 N]);
备注:在 JS 中实参和形参不是必须,可以传递也可以不传递。

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>函数title>
		script>
			
			
			function hello(a,b,c)
			{
				console.log("a =",a);
				console.log("b =",b);
				console.log("c =",c);
				console.log("hello()---");
			}
			
			function hello(a,b)
			{
				console.log("a ---",a);
				console.log("b ---",b);
				console.log("hello()***");
			}
			
			function hello(a)
			{
				console.log("a ---",a);
				console.log("hello()***");
			}
			
			
			function hello()
			{
				console.log("hello()###");
			}
			
			
			hello(123,"hello",true,false);
			
			
			
			
			var ft = function(abc=123,haha="hello")
			{
				console.log("acb =",abc);
				console.log("haha =",haha);
				console.log("匿名函数");
			}
			
			
			ft(678,"world");
			
			
			var world = (a,b) => {
				console.log("a =",a);
				console.log("b =",b);
			};
			
			world(123,678);
			
		script>
	head>
	body>
	body>
html>

DOM 操作

HTML 文档对象模型(HTML Document Object Model)定义了访问和处理 HTML 文档的标准方法。
一文读懂 JavaScript(JS)基础知识大全

1.1、获取 DOM 对象

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>DOMtitle>
		style>
			span
			{
				background-color: aqua;
			}
		style>
	head>
	body>
		
		button id="btn" onclick="dj()">按钮button>
		button id="btn1">a href="">普通按钮a>button>
		button id="btn2">DOM 按钮button>
		div id="dv">
			span>spanspan>
		div>
	body>
	script>
		
		
		var btn = document.getElementById("btn");
		console.log(btn);
		
		function dj()
		{
			
			
			
			
			let  doc = document.getElementById("btn1").innerHTML;
			
			
			console.log(doc);
		}
		
		
	script>
html>

JS 操作 CSS

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>JS CSS  Domtitle>
	head>
	body>
		button id="btn">点击处理 DIV 效果button>
		div id="dv">divdiv>
	body>
	script>
		
		
		let btn = document.getElementById("btn");
		btn.onclick = function()
		{
			let dv = document.getElementById("dv");
			
			dv.style.border = "1px solid black";
			
			dv.style.width = "200px";
			
			dv.style.height = "200px";
			
		}
		
		
	script>
html>

1.2、JQuery 操作 DOM

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>JS CSS  Domtitle>
		script src="../js/jquery-3.7.1.min.js">script>
	head>
	body>
		button id="btn">点击处理 DIV 效果button>
		div id="dv">divdiv>
	body>
	script>
		
		
		
		
		$(function(){
			$("#btn").click(function(){
				$("#dv").css({"border":"1px solid black",
				"background-color":"green","width":"200px"}).height("200px");
			});
		});
		
		
		
	script>
html>

JSON

1.1、概念

JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是存储和交换文本信息的语法。
什么是 JSON?
● JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
● JSON 是轻量级的文本数据交换格式
● JSON 独立于语言 *
● JSON 具有自我描述性,更易理解

  • JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。

1.2、JSON 分为

JSON 对象格式:
{key1:value,…,keyN:value}
JSON 数组:
[{key1:value,…,keyN:value},…,{key1:value,…,keyN:value}]

DOCTYPE html>
html>
	head>
		meta charset="utf-8">
		title>JSONtitle>
	head>
	body>
		script>
			
			let  jn = {"username":"tom","userage":21,"usersex":"男"};
			
			
			console.log(jn.username);
			
			console.log(jn.userage);
			
			console.log(jn.usersex);
			
			
			let  jnarray = [{"username":"tom","userage":21,"usersex":"男"},{"username":"jim","userage":26,"usersex":"man"}];
			
			
			console.log(jnarray[1].username);
			
			console.log(jnarray[1].userage);
			
			console.log(jnarray[1].usersex);
			
			
			let jsonText = JSON.stringify(jn);
			console.log(jsonText);
			
			let jnobj = JSON.parse(jsonText);
			
			console.log(jnobj.username);
			
			console.log(jnobj.userage);
			
			console.log(jnobj.usersex);
		script>
	body>
html>

在这里插入图片描述

原文地址: 一文读懂 JavaScript(JS)基础知识大全

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-23发表,共计8590字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)