Web前端——JavaScript基础

一. JavaScript基础

1. JS简介

2. JS编写的位置

(1). 在HTML标签的事件属性中直接添加脚本

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>位置</title>
</head>
<body>
    <form>
        <input type="button" onclick="javascript:alert('欢迎来到JavaScript世界')" value="点我">
    </form>
</body>
</html>

结果:
在这里插入图片描述

(2). 使用script标签插入脚本

语法:

<head>
	<script>
    	//在这里放置具体的JavaScript脚本  
	</script>
</head>

举例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js位置</title>
    <script>
        function show(){
            alert('欢迎来到JavaScript世界');
        }
    </script>
</head>
<body>
    <form>
        <input type="button" onclick="show()" value="点我"/>
    </form>
</body>
</html>

(3). 使用script标签链接脚本文件

新建一个脚本文件以.js为扩展名的文件里,然后在需要使用的时候在html页面里面引用该文件

基本语法:

<head>
	<script src="脚本文件"></script>
</head>

举例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS引用文件</title>
    <script src="link.js"></script>
</head>
<body>
    <form>
        <input type="button" onclick="show()" value="点击我">
    </form>
</body>
</html>


link.js文件
function show(){
    alert("欢迎来到JavaScript世界!")
}

3. JS基本语法

(1). 标识符和关键字

(2). 直接量(字面量)和变量

(3). 数据类型

在这里插入图片描述

1. 数字类型(Number)
2. 字符串类型
3. 布尔类型
4. null和undefined类型
5. 数据类型转换
6. 对象类型(Object)

基本数据类型缺点:

基本数据类型都是单一的值:"hello" 123 true
值和值之间没有任何的联系

在JS中来表示一个人的信息(name gender age):
var name = “孙悟空”;
var gender=“男”;
var age=18;
如果使用基本数据类型的数据,我们所创建的变量都是独立,不能成为一个整体。

对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性

(1). 对象的分类

在这里插入图片描述
在这里插入图片描述
JavaScript的内容鸟瞰概述https://zh.javascript.info/browser-environment

1. 内置对象(内建对象)

由ES标准中定义的对象,在任何的ES的实现中都可以使用

ES是国际标准化组织发布的浏览器脚本语言的标准,全名:ECMAScript。

详细的ES和JavaScript的关系https://www.jianshu.com/p/4e178e9ef796

  • Math对象
  • String对象
  • Number对象
  • Boolean对象
  • Function对象
  • Object对象
  • Array对象
  • Date对象
2. 宿主对象

由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
在这里插入图片描述
在这里插入图片描述

  • BOM对象
  • DOM对象
3. 自定义对象

由开发人员自己创建的对象

(2). 对象的基本操作
1. 创建对象

var obj = new Object();

使用new关键字调用的函数,是构造函数constructor
构造函数是专门用来创建对象的函数

console.log(typeof obj);

使用typeof检查一个对象时,会返回object

在对象中保存的值称为属性
向对象添加属性
语法:对象.属性名 = 属性值

对象的属性名不强制要求遵守标识符的规范,但是尽量按规范去


//向obj中添加一个name属性
obj.name = "孙悟空"

//向obj中添加一个gender属性
obj.gender = "男"

//向obj中添加一个age属性
obj.age = 18
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var obj = new Object();
        obj.name = "老林"
        obj.gender = "男"
        obj.age = 88
        console.log(obj)
    </script>
</head>
<body>
    
</body>
</html>

此时对象里面有三个属性值
在这里插入图片描述

以上方式可能比较麻烦,我们也可以使用对象字面量创建一个对象:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>对象字面量</title>
    <script>
        //创建一个对象
        //var obj = new Object();

        /*
        使用对象字面量来创建一个对象
        */

        var obj = {};
        console.log(typeof obj);

        obj.name = "老林"
        console.log(obj.name);

        /*
        使用对象字面量,可以在创建对象时,直接指定对象中的属性
        语法:{属性名:属性值, 属性名:属性值....}
        对象字面量的属性名可以加引号也可以不加,建议不加
        如果使用一些特殊的名字,则必须加引号

        属性名和属性值是一组一组的名值对结构
            名和值之间使用:连接,多个名值对之间使用,隔开
            如果一个属性之后没有其他的属性了,就不要写,
        */

        var obj2 = {
            name:"阿飞",
            "age":88, 
            gender:"男",
            test:{name:"老林"}
        };
        console.log(obj2)



    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

2. 读取对象中的属性

语法:对象.属性

如果读取对象中没有的属性,不会报错而是会返回undefined
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var obj = new Object();
        obj.name = "老林"
        obj.gender = "男"
        obj.age = 88
        //console.log(obj)
        console.log(obj.name)
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述
如果需要使用特殊的属性名,不能采用.的方式来读取操作
需要使用另一种方式

语法:对象["属性名"] = 属性值,读取时也需要采取这种方式

使用[ ]这种方式去操作属性,更加灵活,在[ ]中可以直接传递一个变量,这样变量值是多少就会读取那个属性

obj["123"] = 789;
obj["nihao"] = "你好"

var n = "nihao"; 	n的值可以变换
console.log(obj[n]);
3. 修改对象的属性值

语法:对象.属性名 = 新值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var obj = new Object();
        obj.name = "老林"
        obj.gender = "男"
        obj.age = 88
        //console.log(obj)
        console.log(obj.name)
        obj.name = "阿飞"
        console.log(obj.name)
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述
属性值

JS对象的属性值,可以是任意的数据类型,甚至是一个对象

obj.test = true;
obj.test = null;
obj.test = undefined;

判断一个对象里面是否有某个属性:使用in运算符

如果有返回true ,否则返回false

语法:“属性名” in 对象

console.log("test" in obj);
console.log("name" in obj);
4. 删除对象的属性

语法:delete 对象.属性名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var obj = new Object();
        obj.name = "老林"
        obj.gender = "男"
        obj.age = 88
        //console.log(obj)
        console.log(obj.name)
        obj.name = "阿飞"
        console.log(obj.name)
        delete obj.name
        console.log(obj.name)

    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

7. 基本数据类型和引用数据类型
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基本数据类型和引用数据类型</title>
    <script>

        /*
        基本数据类型
        String Number Boolean Null Undefined

        引用数据类型
        Object

        JS中的变量都是保存在栈内存中的,
            基本数据类型的值直接在栈内存中存储
            值与值之间是独立存在,修改一个变量不会影响其他的变量
            
            对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,
            而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象的引用
            当通过一个变量修改属性时,另一个也会受到影响
        */
        var a = 123;
        var b = a;
        a++;

        console.log("a = "+a);
        console.log("b = "+b);

        var obj = new Object();
        obj.name = "孙悟空"
        
        var obj2 = obj;

        console.log(obj.name)
        console.log(obj2.name)

        //修改obj的name属性
        obj.name = "老林"
        console.log(obj.name)
        console.log(obj2.name)
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基本数据类型和引用数据类型</title>
    <script>

        /*
        基本数据类型
        String Number Boolean Null Undefined

        引用数据类型
        Object

        JS中的变量都是保存在栈内存中的,
            基本数据类型的值直接在栈内存中存储
            值与值之间是独立存在,修改一个变量不会影响其他的变量
            
            对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,
            而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象的引用
            当通过一个变量修改属性时,另一个也会受到影响
        */
        var a = 123;
        var b = a;
        a++;

        console.log("a = "+a);
        console.log("b = "+b);

        var obj = new Object();
        obj.name = "孙悟空"
        
        var obj2 = obj;

        console.log(obj.name)
        console.log(obj2.name)

        //修改obj的name属性
        obj.name = "老林"
        // console.log(obj.name)
        // console.log(obj2.name)

        //设置obj2 = null
        obj2 = null;
        console.log(obj);
        console.log(obj2);

    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基本数据类型和引用数据类型</title>
    <script>

        /*
        基本数据类型
        String Number Boolean Null Undefined

        引用数据类型
        Object

        JS中的变量都是保存在栈内存中的,
            基本数据类型的值直接在栈内存中存储
            值与值之间是独立存在,修改一个变量不会影响其他的变量
            
            对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,
            而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象的引用
            当通过一个变量修改属性时,另一个也会受到影响
        */
        var a = 123;
        var b = a;
        a++;

        console.log("a = "+a);
        console.log("b = "+b);

        var obj = new Object();
        obj.name = "孙悟空"
        
        var obj2 = obj;

        console.log(obj.name)
        console.log(obj2.name)

        //修改obj的name属性
        obj.name = "老林"
        // console.log(obj.name)
        // console.log(obj2.name)

        var c = 10;
        var d = 10;
        console.log(c == d);

        var obj3 = new Object();
        var obj4 = new Object();
        obj3.name = "阿飞"
        obj4.name = "阿飞"

        /*
        当比较两个基本数据类型的值时,就是比较值
        而比较两个引用数据类型时,它是比较的对象的内存地址,
        如果两个对象是一模一样的,但是地址不同,它也会返回false
        */
        
        console.log(obj3==obj4)

    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

(4). 运算符和表达式

1. 算术表达式
2. 关系表达式
3. 逻辑表达式
4. 赋值表达式
5. 条件表达式
6. 其他运算符
7. 运算符的优先级和结合性

(5). 语句

1. 表达式语句
2. 声明语句
3. 条件语句
4. 循环语句
5. 循环终止语句和退出语句
6. 注释语句

(6). 函数

(7). 事件处理

(8). 正则表达式

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值