前端三大件速成 05 javascript(1)js组成、引入、基本语法

文章目录

一、js组成

核心(ECMAScript):规定了js的基本语法、关键字等

文档对象模型(DOM):整合js,css,html

浏览器对象模型(BOM):整合js和浏览器

js在开发中绝大多数情况是基于对象的,也是面向对象的。

二、js的引入

方法一:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>

<script>
    alert(123);
</script>

</body>
</html>

方法二:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script src="tset.js"></script>

</head>
<body>

</body>
</html>

tset.js文件:

javascript 复制代码
alert(666);

注:script标签放在哪都行,不过代码是从上到下顺序解释的的,所以最好放在body标签最下面,否则找标签可能找不到。

三、基本语法

1、变量

(1)变量是弱类型的。

(2)声明变量时不用声明变量类型,全部使用var关键字。

javascript 复制代码
var x;  //变量声明
x = 12;
alert(x);    //浏览器弹出一个弹框,输出x值
console.log(x); //在控制台输出x值
javascript 复制代码
var x=10;  //变量声明,同时赋值
console.log(x); //在控制台输出x值

(3)声明变量时,不用关键字var,那么它是全局变量

(4)变量命名:首字母只能是字母、下划线、$ 三选一,且区分大小写。

2、基本规范

(1)语句结束以分号结尾,如果不加分号,浏览器会以换行符为语句结束标志,自动加上分号。规范上,建议分号不要省。

(2)注释:单行注释 //  多行注释 /* */

(3)使用{ }来封装代码块

3、关键字

4、数据类型

(1)基本数据类型

number: 整型和浮点型
string: 字符串,首尾用单引号或双引号括起。js没有字符类型,单个字符也是字符串。

常用转义字符: \n 换行  \' 单引号  \" 双引号 \\ 右划线
boolean: 布尔型,仅有两个值,true和false,分别代表1和0
undefined: 只有一个值,即undefined。变量声明后没有赋值,或者函数没有返回值时,其值为undefined。
Null: 只有一个值null,表示尚未存在的对象。如果函数返回的是对象,那么找不到该对象时,返回的通常是null。注意:typeof null 返回值为object

(2)引用数据类型

数组等复合数据类型均为object

(3)数据类型转换

①隐式转换:

数字 + 字符串:数字转换为字符串

数字 + 布尔值:布尔值转换为数字

字符串 + 布尔值:布尔值转换为字符串true或false

javascript 复制代码
var x=10,y="ab",z=true;
console.log(x+y)    //10ab
console.log(x+z)    //11
console.log(y+z)    //abtrue

用一元加减法转化为数字

javascript 复制代码
var n = "5"
n = +n
console.log(typeof n) // number

②强制转换:

javascript 复制代码
// 转换为整数
console.log(parseInt("123ab"))  // 123
console.log(parseInt("ab123"))  // NaN
console.log(parseInt("hello"))  // NaN
//NAN: not a number,属于Number的一种
console.log(typeof NaN)         //number
javascript 复制代码
console.log(parseInt("6.99ab")) // 6
// 转换为浮点数
console.log(parseFloat("6.99ab")) // 6.99
javascript 复制代码
console.log(eval("1+1")) // 2
console.log(eval("1<2")) // true

(4)typeof运算符

typeof可以查看数据类型

javascript 复制代码
function f() {
    // 相当于写了个html语句
    document.write("<h1>hello world!</h1>")
}
console.log(typeof f()) // undefined
console.log(typeof f)   // function

5、运算符

①加 +  减 -  乘 *  除 /  取余 %

javascript 复制代码
console.log(2+3) // 5
console.log(3*2) // 6
console.log(11/2) // 5.5
console.log(11%2) // 1

②自增1: i++ ++i   自减1: i-- --i

javascript 复制代码
var i =10
console.log(i++) // 10
console.log(++i) // 12

③比较运算符

大于 >   小于 <

大于或等于 >=   小于或等于 <=

赋值 =

等于 ==  不等于 !=

完全等 ===

javascript 复制代码
var n = 5
console.log(n == 5) // true
console.log(n == "5") // true
console.log(n === "5") // false

比较运算符两侧如果一个是数字类型,一个是其他类型,会将其他类型转换为数字类型。

比较运算符两侧如果都是字符串类型,则从前往后按位比较字符对应的ascii码。

javascript 复制代码
console.log(5>"3") // true
console.log("5">"31") // true

④NaN只要参与比较,布尔值一定是false,除非 !=

javascript 复制代码
var n = NaN
console.log(n>5) // false
console.log(n<5) // false
console.log(n==5) // false
console.log(n==NaN) // false
console.log(n!=NaN) // true

⑤逻辑运算符

且 &&   或 ||   非 !
且 &&:

如果第一个操作数为真,返回第二个操作数。

如果第一个操作数为假,返回第一个操作数。

null,NaN,undefined,均为假

javascript 复制代码
var x = 5, y = 0, z = true;

console.log(x && y) // 0
console.log(y && z) // 0
console.log(z && x) // 5

或 ||:

如果第一个操作数为真,返回第一个操作数。

如果第一个操作数为假,返回第二个操作数。

javascript 复制代码
console.log(0 || 10) // 10
console.log(11 || 0) // 11

非 !:

javascript 复制代码
console.log(!10) // false
console.log(!0) // true

⑥位运算符

左移 <<:按位左移,后面补0

右移 >>:按位右移,前面补0

按位取反 ~

按位与运算 &

按位或运算 |

按位异或运算 ^

javascript 复制代码
console.log(3<<1) // 6
console.log(3>>1) // 1

console.log(~6) // -7

console.log(2&1) // 0
console.log(2|1) // 3
console.log(2^3) // 1

6、流程控制

(1)选择结构

if语句:

javascript 复制代码
if (2>1){
    console.log(222)
}
javascript 复制代码
if (2>10){
    console.log(222)
}else {
    alert(10)
}

此外,if语句还可以嵌套

switch语句:

javascript 复制代码
var week=3;

switch (week){
   case 1:alert("星期一");break;
   case 2:alert("星期二");break;
   case 3:alert("星期三");break;
   case 4:alert("星期四");break;
   case 5:alert("星期五");break;
   case 6:alert("星期六");break;
   case 7:alert("星期日");break;
   default:alert("nothing");
}

(2)循环语句

for语句:

for (初始化; 条件;增量) {

循环体

}

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<p>hello1</p>
<p>hello2</p>
<p>hello3</p>
<p>hello4</p>

<script>

var elses_P = document.getElementsByTagName("p")
console.log(elses_P)

for (var i=0;i<elses_P.length;i++){
    console.log(i);
    console.log(elses_P[i]);
}

</script>

</body>
</html>

while语句:

while (条件) {

循环体

}

javascript 复制代码
var x = 0,i = 1;

while (i<=100) {
    x += i;
    i++
}

console.log(x) // 5050

7、异常处理

javascript 复制代码
try {
    // 这段代码顺序执行,其中任何一个语句抛出异常,该代码块就结束运行
}
catch (e) {
    // 如果try代码块中抛出了异常,catch代码块中的代码就会被执行
    // e是一个局部变量,用来指向Error对象,或者其他抛出的对象
}
finally {
    // 无论try中代码是否有异常抛出,甚至try代码块中有return语句,
    // finally代码块中始终会被执行。
}
// 主动抛出异常 throw Error("xxx")

例:

javascript 复制代码
try {
    console.log(123)
    throw Error("define error")
}
catch (e) {
    console.log(e)
}
finally {
    console.log("finally")
}

8、函数

javascript 复制代码
//定义函数
function f(){
    console.log(123)
}

//调用函数
f()
相关推荐
Mr_sun.13 分钟前
Day09——入退管理-入住-2
android·java·开发语言
MAGICIAN...24 分钟前
【java-软件设计原则】
java·开发语言
Ticnix25 分钟前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts
纯爱掌门人28 分钟前
终焉轮回里,藏着 AI 与人类的答案
前端·人工智能·aigc
twl32 分钟前
OpenClaw 深度技术解析
前端
gpfyyds66632 分钟前
Python代码练习
开发语言·python
崔庆才丨静觅35 分钟前
比官方便宜一半以上!Grok API 申请及使用
前端
星光不问赶路人43 分钟前
vue3使用jsx语法详解
前端·vue.js
天蓝色的鱼鱼1 小时前
shadcn/ui,给你一个真正可控的UI组件库
前端
盐真卿1 小时前
python第八部分:高级特性(二)
java·开发语言