JavaScript - 基础总结

目录

一、JS语言介绍

1、概念

2、组成

3、调试方式

alert() :页面弹框

console.log() :控制台打印(推荐)

document.write() :页面打印(不推荐)

浏览器断点调试​

4、页面弹框类别(三类)

二、存在位置(三类)

1、行间式:存在于行间事件中

2、内联式:存在于页面script标签中

2.1 内联式内js的放置位置

3、外联式:存在于外部JS文件,通过script标签src属性链接

注意一:不存在类别优先级,以执行顺序决定最后采用样式。

注意二:若内联、外联同时存在,则无视内联,以外联式为准。

三、JavaScript语句规范

1、分号 ; (分割js语句)

2、编译型逐条执行

3、代码块{},作用是使语句序列一起执行

4、自动忽略多余空格。

5、小驼峰命名法(首字母小写,后接单词大首字母大写)

6、使用反斜杠进行代码折行

7、//单行注释,/**/多行注释

四、变量

1、命名规范

2、ES5定义变量

3、ES6定义变量

4、单语句多变量

五、数据类型

number:数字类型(不分浮整)

string:字符串类型

boolean:布尔类型

undefined:未定义类型

null:空对象

Array:数组对象

Date:时间对象

RegExp:正则对象

对象(类 map,dic)

六、类型转换

数字|布尔 转换为 字符串

布尔|字符串 转换为 数字

字符串|数字 转换为 布尔

自动转换

特殊产物 NaN

七、运算符

1、JavaScript 算术运算符

注:a = i++ (a先赋值,后i自增);a = ++i ( i先自增,a后赋值)

2、JavaScript 赋值运算符

3、JavaScript比较运算符

4、JavaScript逻辑运算符

5、JavaScript三目运算符

6、ES6语法解构赋值

数组的解构赋值

对象的解构赋值

字符串解构赋值


一、JS语言介绍

1、概念

  • 浏览器脚本语言:可以编写运行在浏览器上的代码程序

  • 属于解释性、弱语言类型编程语言

2、组成

  • ES语法ECMAScript、主要版本ES5和ES6

  • DOM文档对象模型(Document Object Model),是W3C组织推荐的处理可扩展标志语言的标准编程接口。

  • BOM浏览器对象模型(Browser Object Model),提供了独立于内容的、可以与浏览器窗口进行互动的对象结构;且由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。
    注意:DOM属于BOM内,是BOM的子对象,但是由于内容庞大,单独拿出来。

3、调试方式

  1. alert() :页面弹框

    <script type="text/javascript">
    	var a = 10;
    	var b = 20;
    
    	alert(a);
    	alert(b);
    </script>
  2. console.log() :控制台打印(推荐)

    <script type="text/javascript">
    	var a = 10;
    	var b = 20;
    
    	console.log(a);
    	console.log(b);
    </script>
  3. document.write() :页面打印(不推荐)

    <script type="text/javascript">
    	var a = 10;
    	var b = 20;
    
    	document.write(a);
    	document.write(b);
    </script>
  4. 浏览器断点调试

4、页面弹框类别(三类)

  • alert:普通弹出框
     

    <script>
    	//弹出框: 一个弹出框只能弹出一条信息
    	alert("普通弹出框", "hello");  // hello被忽略了
    </script>

  • confirm:确认框
     

    <script>
    	// 确认框
    	var res = confirm("你是男的吗?");  
    	// true | false
    	alert(res);
    </script>

  • prompt:输入框

    <script>
    	// 输入框
    	var res = prompt("请输入!"); 
    	 // 确定为输入值, 取消为null
    	alert(res);  
    </script>

二、存在位置(三类)

1、行间式:存在于行间事件中

<body id="body" onload="body.style.backgroundColor='#0ff'">
    
</body>

2、内联式:存在于页面script标签中

<body id="body">
    <script type="text/javascript">
        body.style.backgroundColor='#0ff'
    </script>
</body>

2.1 内联式内js的放置位置

  • 位于head标签内末端(依赖型JS库):提供body内需求的事件、变量等
    例:head内的js函数,给下方body内的按钮提供点击事件。

  • 位于body标签内(功能型JS脚本):执行事件、插入文本等

     

3、外联式:存在于外部JS文件,通过script标签src属性链接

index.js文件
body.style.backgroundColor='#0ff'
​
index.html文件
<script src="./js/index.js"></script>

注意一:不存在类别优先级,以执行顺序决定最后采用样式。

注意二:若内联、外联同时存在,则无视内联,以外联式为准。

<script src="./js/index.js">
function myFunction()
{
document.getElementById("demo").innerHTML="My First JavaScript Function";
}
</script>

三、JavaScript语句规范

1、分号 ; (分割js语句)

提示:也可能看到不带有分号的案例。在 JavaScript 中,用分号来结束语句是可省的。

2、编译型逐条执行

3、代码块{},作用是使语句序列一起执行

4、自动忽略多余空格。

因为,var name="Hello"; 等效于 var name = "Hello"; 可以适当使用空格提高可读性。

5、小驼峰命名法(首字母小写,后接单词大首字母大写)

例:helloWord、getElementById

6、使用反斜杠进行代码折行

正确演示:
document.write("Hello \
World!");

错误示范:
document.write \
("Hello World!");

7、//单行注释,/**/多行注释

// 输出标题:
document.getElementById("myH1").innerHTML="Welcome to my Homepage";
// 输出段落:
document.getElementById("myP").innerHTML="This is my first paragraph.";

/*
下面的这些代码会输出
一个标题和一个段落
并将代表主页的开始
*/
document.getElementById("myH1").innerHTML="Welcome to my Homepage";
document.getElementById("myP").innerHTML="This is my first paragraph.";

四、变量

1、命名规范

与代数一样,JavaScript 变量可用于存放值(比如 x=2)和表达式(比如 z=x+y)。

变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume)。

  • 变量必须以字母开头
  • 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
  • 变量名称对大小写敏感(y 和 Y 是不同的变量)

提示:JavaScript 语句和 JavaScript 变量都对大小写敏感。

2、ES5定义变量

var num = 10;  // 无块级作用域变量
num = 10;  // 全局变量

3、ES6定义变量

let num = 10;  // 局部变量
const NUM = 10;  // 常量

4、单语句多变量

//单行
var name="Gates", age=56, job="CEO";

//多行
var name="Gates",
age=56,
job="CEO";

五、数据类型

  • number:数字类型(不分浮整)

var x1=34.00;      //使用小数点来写
var x2=34;         //不使用小数点来写
var y=123e5;      // 12300000
var z=123e-5;     // 0.00123

var a = 10;
console.log(a, typeof a)
// 判断方式
console.log(typeof a == 'number')
  • string:字符串类型

var a = '10';
var carname="Bill Gates";
console.log(a, typeof a)
// 判断方式
console.log(typeof a == 'string')
  • boolean:布尔类型

var a = true;
console.log(a, typeof a)
// 判断方式 只有true 和 false 两种值
console.log(typeof a == 'boolean')
  • undefined:未定义类型

var a = undefined;
console.log(a, typeof a)
// 判断方式
console.log(typeof a == 'undefined')
console.log(a == undefined)
  • null:空对象

var a = null;
console.log(a, typeof a)
// 判断方式
console.log(typeof a == 'object')
console.log(a == null)
  • Array:数组对象

var cars=new Array();
cars[0]="Audi";
cars[1]="BMW";
cars[2]="Volvo";
var cars=new Array("Audi","BMW","Volvo");
var cars=["Audi","BMW","Volvo"];

var a = new Array(1, 2, 3, 4, 5);
console.log(a, typeof a)
// 判断方式
console.log(typeof a == 'object')
console.log(a instanceof Object)
console.log(a instanceof Array)
  • Date:时间对象

var a = new Date();
console.log(a, typeof a)
// 判断方式
console.log(typeof a == 'object')
console.log(a instanceof Object)
console.log(a instanceof Date)
  • RegExp:正则对象

var a = new RegExp();
console.log(a, typeof a)
// 判断方式
console.log(typeof a == 'object')
console.log(a instanceof Object)
console.log(a instanceof RegExp)
  • 对象(类 map,dic)

/*对象由花括号分隔。
在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。
属性由逗号分隔:*/
var person={firstname:"Bill", lastname:"Gates", id:5566};
var person={
firstname : "Bill",
lastname  : "Gates",
id        :  5566
};

//寻址方式(两种)
name=person.lastname;
name=person["lastname"];

六、类型转换

  • 数字|布尔 转换为 字符串

var a = 10 or true
​
String(a)
​
a.toString()
  • 布尔|字符串 转换为 数字

var a = true or '10'
​
Number(a)
​
+ a
​
parseFloat()
parseInt()
  • 字符串|数字 转换为 布尔

var a = 10 or '10'
Boolean(a)
  • 自动转换

5 + null  // 5
"5" + null  // "5null"
"5" + 1  // "51"  文本相加操作
"5" - 1  // 4  计算操作
  • 特殊产物 NaN

// NaN: 非数字类型
// 不与任何数相等,包含自己
// 利用isNaN()进行判断

七、运算符

1、JavaScript 算术运算符

算术运算符用于执行变量与/或值之间的算术运算。

给定 y=5,下面的表格解释了这些算术运算符:

运算符 描述 例子 结果
+ x=y+2 x=7
- x=y-2 x=3
* x=y*2 x=10
/ x=y/2 x=2.5
% 求余数 (保留整数) x=y%2 x=1
++ 累加 x=++y x=6
-- 递减 x=--y x=4

注:a = i++ (a先赋值,后i自增);a = ++i ( i先自增,a后赋值)

2、JavaScript 赋值运算符

赋值运算符用于给 JavaScript 变量赋值。

给定 x=10 和 y=5,下面的表格解释了赋值运算符:

运算符 例子 等价于 结果
= x=y   x=5
+= x+=y x=x+y x=15
-= x-=y x=x-y x=5
*= x*=y x=x*y x=50
/= x/=y x=x/y x=2
%= x%=y x=x%y x=0

3、JavaScript比较运算符

前提:x=5

运算符 描述 比较 结果
== 等于 x=="5" true
=== 绝对等于 x==="5" false
!= 不等于 x!="5" fales
!== 不绝对等于 x!=="5" true
> 大于 x>5 false
< 小于 x<5 false
>= 大于等于 x>=5 true
<= 小于等于 x<=5 true

4、JavaScript逻辑运算符

前提:n=5

运算符 描述 例子 结果
&& x=n>10&&++n x=false,n=5(短路)
|| x=n<10||n-- x=true,n=5(短路)
! x=!n x=false,x=5

5、JavaScript三目运算符

// 结果 = 条件表达式 ? 结果1 : 结果2;
​
// eg:
var tq = prompt("天气(晴|雨)")
var res = tq == '晴' ? "今天天气挺好" : "请假回家收衣服";
console.log(res);

6、ES6语法解构赋值

  • 数组的解构赋值

let [a, b, c] = [1, 2, 3]
// a=1,b=2,c=3
let [a, ...b] = [1, 2, 3]
// a=1,b=[2,3]
  • 对象的解构赋值

let {key: a} = {key: 10}
// a=10
  • 字符串解构赋值

let [a,b,c] = 'xyz'
// a='x',b='y',c='z'

猜你喜欢

转载自blog.csdn.net/qq_33961117/article/details/83013174