前端秘法基础式终章----欢迎来到JS的世界

目录

一.JavaScript的背景

二.JavaScript的书写形式

1.行内式

2.嵌入式

3.外部式

三.JS中的变量

1.变量的定义

2.JS动态类型变量

2.1强类型和弱类型

3.JS中的变量类型

四.运算符

五.if语句和三元表达式和Switch语句和循环语句

六.数组

1.创建获取数组元素

2.新增数组元素

七.函数

1.函数的声明和调用

2.作用域及作用域链

八.对象

1.对象的创建

1.1字面变量创建

1.2使用new Object创建

1.3构造函数创建对象

1.4class构造对象

1.5static修饰

1.6对象的继承


一.JavaScript的背景

JavaScript 是一种高级编程语言,通常用于网页开发和网页交互。它可以让网页变得更加动态和交互性强,例如实现动画效果、表单验证、数据交互等。
 
JavaScript 可以直接嵌入到 HTML 页面中,通过浏览器执行,从而实现网页的各种功能。它也可以用于开发桌面应用程序、移动应用程序等。

JavaScript 有以下几个特点:
 
- 解释性语言:JavaScript 代码不需要编译,直接由浏览器解释执行。
- 面向对象:它支持面向对象编程的特性,如类、对象、继承等。
- 事件驱动:通过监听和响应网页上的各种事件(如点击、鼠标移动等)来触发相应的 JavaScript 代码执行。
- 跨平台:由于 JavaScript 主要在浏览器中运行,所以它可以在各种操作系统和设备上运行。

二.JavaScript的书写形式

1.行内式

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><input type="button" value="          js         " onclick="alert('welcome to js!')">
</body>
</html>

注意这里onclick中的双引号和单引号可互换,既可以单引号包含双引号,又可以双引号包含单引号,和Python中的单双引号用法相似

2.嵌入式

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

</body>

<script>alert('welcome ton js!')</script>

</html>

通过script标签引入JS代码

3.外部式

通过JS文件引入

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

</body>

<script src="JScode/JS01.js"></script>

</html>

需要注意的是css在引入的时候是link标签搭配href属性,而JS在引入的时候则是script标签搭配src属性

三.JS中的变量

1.变量的定义

var a = 0;

let a = 0;

上述两种定义变量的方法都行,其中let是在var的基础上做一些优化和改进

2.JS动态类型变量

与Python一样,JS中的变量属于动态类型变量,它的变量类型可以随着数据类型的改变而改变

2.1强类型和弱类型

强类型是指数据类型的转变需要进行强制转换

弱类型是指数据类型转变不需要强转,JS,Python是常见的弱类型语言

3.JS中的变量类型

需要特别注意的是infinity表示正无穷,nan表示不是数字,undefined表示变量未定义,null表示该变量为空,两者在逻辑判断上是相等的,都为false,不过null是空对象指针,类型为object,undefined是未定义,返回类型为undefined

四.运算符

运算符与C语言大致相同,需要注意的是等号

一个等号表示赋值

两个等号表示比较内容是否相同,不考虑数据类型,也就是1==true是返回true

三个等号考虑数据类型

五.if语句和三元表达式和Switch语句和循环语句

用法与C语言相同

这里讲一下调试技巧

打开网页,进入开发者工具,进入console控制台

按Ctrl+shift+r进入调试模式,按f11逐步进行

六.数组

1.创建获取数组元素

创建数组可以采用字面变量创建:let arr = [1, 2, 3];

也可以new一个数组对象let arr = new Arry();

利用数组下标获取元素即可

2.新增数组元素

修改数组长度

let a = new Array(1, 2, 3);

a.length = 5;

console.log(a);

我们可以看到最后有两个空位,数据类型为undefined

直接通过下标赋值

let a = new Array(1, 2, 3);

a[3] = 5;

console.log(a);

通过push追加

let a = new Array(1, 2, 3);

let newa = new Array();

for(i = 0; i < a.length; i++){

    newa.push(a[i]);

}

console.log(newa);

七.函数

1.函数的声明和调用

function Add(x, y){

    return x + y;

}

let Min = function(x, y){

    return x * y;

}

两种写法都可以,第二种是直接将函数给到一个变量,可以不用书写函数名,通过变量直接调用

2.作用域及作用域链

JS中会出现函数套函数的情况,那么内层函数可以使用外层函数的变量,但外层函数得不到内层函数的变量,因为变量的搜索遵循由内到外

八.对象

其实就类似于C语言中的结构体(但它们也有一些本质的区别,可以抽象的理解)

1.对象的创建

1.1字面变量创建

let people = {

    name:"zhangsan",

    age:16,

    gender:"male"

}

console.log(people);

类似于Python中的字典,通过键值对创建

1.2使用new Object创建

let People = new Object()

People.name = "zhangsan";

People.age = 16;

console.log(People);

1.3构造函数创建对象

function people(name, age, gender){

    this.name = name;

    this.age = age;

    this.gender = gender;

}

let people1 = new people("zhansan", 16, "male");

console.log(people1);

1.4class构造对象

es6中开始支持用class去构建对象,弥补了上述方法无法继承的缺陷

class people{

    constructor(name, age){

        this.name = name;

        this.age = age;

    }

    Say(){

        console.log("hello");

    }

}

let zhangsan = new people("zhangsan", 16);

console.log(zhangsan);

zhangsan.Say();

1.5static修饰

此时不论是属性还是方法都不属于对象,而属于类,在调用的时候要基于类名去调用

class people{

    constructor(name, age){

        this.name = name;

        this.age = age;

    }

    Say(){

        console.log("hello");

    }

    static Say1(){

        console.log("hehe");

    }

}

let zhangsan = new people("zhangsan", 16);

console.log(zhangsan);

zhangsan.Say();

people.Say1();

1.6对象的继承

class people{

    constructor(name, age){

        this.name = name;

        this.age = age;

    }

    Say(){

        console.log("hello");

    }

    static Say1(){

        console.log("hehe");

    }

}

class student extends people{

    constructor(name, age, num){

        super(name, age);

        this.num = num;

    }

}

通过extends指定你所要继承的属性所属的类,通过super指定你要继承的具体属性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/692231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity学习(28)——登录功能

有之前注册的知识&#xff0c;登录就很容易处理了。 登陆成功返回id&#xff1a; 登录失败返回null&#xff1a; 测试同一账号不能重复登陆&#xff01;登录成功后最好可以跳到新的场景中 结果是好的&#xff0c;去服务器看一下对应部分的代码&#xff0c;可见&#xff0c;登…

MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案

项目场景 有时候&#xff0c;遇到数据库重复数据&#xff0c;需要将数据进行分组&#xff0c;并取出其中一条来展示&#xff0c;这时就需要用到group by语句。 但是&#xff0c;如果mysql是高版本&#xff0c;当执行group by时&#xff0c;select的字段不属于group by的字段的…

【FastAPI】P3 请求与响应

目录 请求路径参数查询参数 响应JSON 响应文本响应返回 Pydantic 模型 在网络通讯中&#xff0c;请求&#xff08;Request&#xff09; 与 响应&#xff08;Response&#xff09; 扮演着至关重要的角色&#xff0c;它们构成了客户端与服务器间互动的根本理念。 请求&#xff0…

Linux编辑器——Vim详解

目录 ⭐前言 ⭐vim的基本概念 ⭐vim的基本操作 ⭐vim命令模式命令集 ⭐vim末行模式命令集 ⭐简单vim配置 ⭐配置文件的位置 ⭐常用配置选项 ⭐前言 vi/vim的区别简单点来说&#xff0c;它们都是多模式编辑器&#xff0c;不同的是vim是vi的升级版本&#xff0c;它不仅兼容…

CMake的简单使用

一、一个最简单的CMake项目 在Ubuntu上使用CMake构建一个最简单的项目。 1. 安装CMake 首先安装CMake&#xff0c;这里使用的是Ubuntu系统。 sudo apt-get install cmake2. 编写源程序 编写代码&#xff0c;新建文件main.c。 // main.c #include "stdio.h"int …

安卓adb调试备忘录

由于 MAC 的 USB 口全被占用着&#xff0c;采用无线连接刚方便&#xff0c;记录一下&#xff0c;以防忘记~ ADB原理 adb devices -l ## 列出连接的设备adb tcpip [端口号] adb tcpip 6666 # 将当前已连接USB上的Mobile端切换为TCP/IP模式&#xff0c;以6666端口进行监听. adb…

你真的了解—————NumPy吗

&#x1f308;个人主页&#xff1a;小田爱学编程 &#x1f525; 系列专栏&#xff1a;opencv &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于IT的优质内容&#xff01;&#x1f3c6;&#x1f3c6; &#x1f600;欢迎来到小田代码世界~ &#x1f601; 喜欢的…

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(8)模型训练

好吧&#xff0c;搞了半天&#xff0c;都是围绕数据在干活&#xff0c;这也就验证了&#xff0c;我们说的&#xff0c;数据准备等工作&#xff0c;要占到机器学习项目一半以上的工作量和时间。而且数据决定了模型的天花板&#xff0c;算法只是去达到上限。 我们今天来学习模型…

Java实现Redis延时队列

“如何实现Redis延时队列”这个面试题应该也是比较常见的&#xff0c;解答如下&#xff1a; 使用sortedset&#xff08;有序集合&#xff09; &#xff0c;拿时间戳作为 score &#xff0c;消息内容作为key 调用 zadd 来生产消息&#xff0c;消费者用zrangebyscore 指令获取 N …

2、windows环境下vscode开发c/c++环境配置(一)

前言&#xff1a;VSCode是微软出的一款轻量级编辑器&#xff0c;它本身只是一款文本编辑器而已&#xff0c;并不是一个集成开发环境(IDE)&#xff0c;几乎所有功能都是以插件扩展的形式所存在的。因此&#xff0c;我们想用它编程&#xff0c;不只是把vscode下载下来就行&#x…

数据分析 — 电商用户分析和用户 RFM 模型

目录 一、电商用户分析1、数据字段信息2、数据读取3、数据清洗4、可视化分析1、每年销售额的增长情况2、各个地区分店的销售额3、每个分店每一年的销售额4、销售淡旺季5、新增用户 二、RFM 模型1、RFM 模型的三个维度2、RFM 的客户类型标签3、RFM 模型的二分法思想4、代码 一、…

计网day6

七 应用层 7.1 网络应用模型 7.2 DNS系统 7.3 文件传输协议FTP 7.4 电子邮件 7.5 万维网和HTTP协议

细数高德地图的发展史

根据2023年自然资源部公布的名单显示&#xff0c;以下公司通过“地图甲级测绘资质”换证审核&#xff0c;也就意味着&#xff0c;以下这些公司可以继续从事电子地图的采集和制作、商业合作等相关业务。 而这一点&#xff0c;对于以电子地图导航为主要业务支撑的企业至关重要。…

【编程题】跳石板

跳石板 分析后可知 要在众多解中寻找最优解 因此用动态规划 比如&#xff1a; 4-6只需跳一步&#xff0c;而6-8也只需一步&#xff0c;因此在刚才跳了一步的基础上再加1 8到10一步&#xff0c;8到12一步&#xff0c;9到12一步&#xff0c;8-10-12两步&#xff0c;因此到12位置…

新增长100人研讨会:快消零售专场探讨招商加盟数字化转型实战

2024年2月2日下午&#xff0c;一场由纷享销客与杨国福集团联合主办的招商加盟数字化转型研讨会在上海成功举办。本次研讨会汇聚了众多快消零售业界的领军人物&#xff0c;共同探讨行业未来的新增长点。 会议伊始&#xff0c;杨国福集团数字化中心负责人王林林发表了主题演讲&a…

使用Nginx或者Fiddler快速代理调试

1 背景问题 在分析业务系统程序问题时,存在服务系统环境是其它部门或者其它小组搭建或运维的,并且现在微服务时代,服务多且复杂,在个人机器上搭建起如此环境,要么费事费力,要么不具备充足条件。 急需有一种方法或者工具可以快速辅助调试定位分析问题。本文下面介绍代理方…

2.12:C语言测试题

1.段错误&#xff1a;str指向NULL&#xff0c;不能把"hello world" 复制给NULL 2.报错&#xff1a;返回局部变量&#xff0c;本函数结束&#xff0c;非法访问&#xff0c;不一定输出hello world 3.地址传递&#xff0c;修改str&#xff0c;正常输出hello 4.可以输出…

npm ERR! code CERT_HAS_EXPIRED:解决证书过期问题

转载&#xff1a;npm ERR! code CERT_HAS_EXPIRED&#xff1a;解决证书过期问题_npm err! code cert_has_expired npm err! errno cert-CSDN博客 npm config set registry http://registry.cnpmjs.org npm config set registry http://registry.npm.taobao.org

【Linux 02】权限基本概念

文章目录 &#x1f308; Ⅰ 权限概念&#x1f308; Ⅱ 权限管理1. 文件访问者分类 (角色)2. 文件类型和访问权限 (事物属性)3. 文件权限值表示方法 &#x1f308; Ⅲ 权限修改1. chmod 设置文件访问权限2. chown 修改文件拥有者3. chgrp 修改文件或目录的所属组 &#x1f308; …

【数据分享】2014-2024年全国监测站点的逐月空气质量数据(15个指标\免费获取)

空气质量的好坏反映了空气的污染程度&#xff0c;在各项涉及城市环境的研究中&#xff0c;空气质量都是一个十分重要的指标。空气质量是依据空气中污染物浓度的高低来判断的。 我们发现学者王晓磊在自己的主页里面分享了2014年5月以来的全国范围的到站点的逐时空气质量数据&am…