JavaScript极速入门(1)

news2025/1/19 12:10:29

初识JavaScript

JavaScript是什么

JavaScript(简称JS),是一个脚本语言,解释型或者即时编译型语言.虽然它是作为开发Web页面的脚本语言而著名,但是也应用到了很多非浏览器的环境中.

看似这门语言叫JavaScript,其实在最初发明之初,这门语言的名字其实是在蹭Java的热度,实际上和Java差别挺大.

JavaScript和HTML和CSS之间的关系

HTML:网页的结构(骨) 

CSS:网页的表现(皮)

JavaScript:网页的行为(灵魂).

JavaScript快速上手

1.在HTML中,运行如下代码:

<!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>
    <script>
        alert("原神启动!")
    </script>
</body>
</html>

2.运行浏览器

 

引入方式

JS有三种引入方式,语法如下表所示:

引入方式语法描述示例
行内样式直接嵌入到html内部

<input type="button" value="点我一下"

οnclick="alert('haha')">

内部样式定义<script>标签,写到script标签中

<script>

        alert("星穹铁道启动!");

</script>

外部样式定义<script>标签,通过src属性引入外部js文件<script src="???.js"></script>

3种引入方式对比:

1.内部样式会出现大量代码冗余,不方便后期的维护,所以不常用.

2.行内样式,只适合于简单样式.只针对某个标签生效,缺点是不能使用太复杂的js.

3.外部样式,html和js实现了分离,这也是企业开发种常用的方式

基础语法

JavaScript虽然一些设计理念和Java相去甚远, 但是在基础语法层面还是有一些相似之处的.有了Java的基础很容易理解JavaScript的一些基础语法.

变量

创建变量(变量定义/变量声明/变量初始化),JS有三种方式.

关键字解释示例
var早期JS中声明变量的关键字,作用域在该语句函数范围内var name='zhangsan';
lesES6种新增声明变量的关键字,作用域在该语句所在代码块内les name='zhangsan';
const声明变量的,声明变量后不能修改const name='zhangsan';

注意事项:

1.JavaScript是一门动态弱类型的语言,变量可以存放不同类型的值(动态).比如:

var name='zhangsan';
var count=5;

随着程序的运行,变量的类型可能会发生改变(弱类型).

var a = 10;
a = "hehehe";

Java是静态强类型语言,在变量声明中,需要明确定义变量的类型.如果不强制转换,类型不会发生变化

2.变量命名规则:

a.组成字符可以是任何字母,数字,下划线(_)或美元符号($)

b.数字不能开头

c.建议使用驼峰命名

 3.+表示字符串拼接,也就是将两个字符串首尾相连组成新的字符串.

4.\n表示换行.

数据类型

虽然js是弱数据类型的语言,虽然js中也存在数据类型,js中的数据类型分为:原始类型和引用类型,具体有如下类型:

数据类型描述
numbernumber,不区分小数和整数.
string

字符串类型.

字符串面值需要使用引号引起来,用双引号或者单引号皆可

booleantrue真,false假
undifined表示变量未初始化

使用typeof可以返回数据的类型.

    <script>
        var a = 10;
        console.log(typeof a);

        var b = 'hello';
        console.log(typeof b);

        var c = false;
        console.log(typeof c);

        var d;
        console.log(typeof d);

        var e = null;
        console.log(typeof e);
    </script>

运算符

由于JavaScript大部分运算符与Java的运算符相同,因此这里只讲有区别的部分

1. /  :在java中 1 / 2 是0, 而在JavaScript中求出来的结果为0.5.

2.==比较相等(会进行隐式类型转换),比如var a = 10; var b = '10';(a==b)它们比较也会相等.

3.===比较相等(不会进行隐式类型转换), var a = 10; var b = '10';(a===b)它们不会比较相等.

4.!= 和!==规则同2,3.

代码示例:

var age = 20;
var age1 = '20';
var age2 = 20;
console.log(age==age1);//true
console.log(age===age1);//false
console.log(age==age2);true

JavaScript对象

数组

数组定义

创建数组有两种方式

1.使用new关键字进行创建.

//Array 的 A要大写
var arr = new Array();

2.使用字面变量方式创建(常用):

var arr = [];
arr = [1, 2.0, 'haha', false];//数组中的内容称为元素

注意:JS数组中的元素可以是不同类型.

数组操作

1.读:使用下标的方式访问数组元素(下标从0开始)

2.增:通过下标新增,或者使用push来新增元素.

3.改:通过下标修改.

4.删:通过splice来删除数组元素

    <script>
        var arr = [1, 2, 'haha', false];
        //读取数组
        console.log(arr[0]);//1
        //添加数组元素
        arr[4] = "add";
        console.log(arr[4]);//add
        console.log(arr.length);//5, 获取数组的长度
        //修改数组的元素
        arr[4] = "update";
        console.log(arr[4]);//update
        //删除数组的元素
        arr.splice(4, 1); //第一个参数表示从下标为4的位置开始删除,第二个参数表示要删除的元素数量.
        console.log(arr[4]);//undefined 元素已经删除,如果元素不存在,则结果为undefined.
        console.log(arr.length); //4
    </script>

注意:

1.如果下标超出范围读取元素,则结果为undefined

2.不要给数组名直接赋值,此时数组中的元素会全部消失

函数

语法格式

创建函数/函数声明/函数定义

function 函数名(形参列表) {
        函数体;

        return 返回值;

}

//函数调用

函数名(实参列表) //不考虑返回值

返回值 = 函数名(实参列表) //考虑返回值

函数定义并不会执行函数体内的内容,必须要调用才会执行.调用几次就执行几次.

function hello() {
    console.log("hello");
}
//如果不调用函数,则不打印执行语句.
hello();

调用函数的时候函数内部执行,函数结束时回到调用位置继续执行.调用几次就会执行几次.

函数的定义和调用先后顺序没有要求.(这一点和变量不同,变量是先定义后使用).

hello();
function hello() {
    console.log("hello");
}

 关于参数个数

实参和形参之间的参数可以不匹配.但是实际开发一般要求形参和实参个数匹配.

1.如果实参个数比形参多,则多出来的参数不参与函数运算.

sum(10, 20, 30); //30

2.如果实参个数比形参少,则返回undefined.

JS相比于其它语言比较灵活,实际上这种灵活性往往不是好事

函数表达式

另一种函数表达方式.

        var add = function() {
            var sum = 0;
            for(var i = 0; i < arguments.length; i++) {
                sum += arguments[i];
            }
            return sum;
        }
        console.log(add(10, 20));
        console.log(add(1, 2, 3, 4));
        console.log(typeof add); // function

此时形如function(){}这样的写法定义了一个匿名函数,然后将这个匿名函数用一个变量来表示

后面就可以通过add变量来调用函数了.

对象

在JS中,字符串,数组,数值,函数都是对象.

每个对象都有若干的属性和方法.

属性:事物的特征. 方法:事物的行为.

JavaScript的对象和Java的对象概念基本一致.只是具体的语法表项形式差别较大.

1.使用字面量创建对象.[常用]

使用{}创建对象.

var a = {}; //创建了一个空的对象
var student = {
    name: '蔡徐坤',
    height: 175,
    weight: 140,
    sayHello: function() {
        console.log("hello");
    }
};

使用{}创建对象

属性和方法使用键值对的形式来组织.

键值对之间使用 , 分割.最后一个属性后面的,可有可无.

键和值之间使用 : 分割 .

方法的值是一个匿名函数.

使用对象的属性和方法:

//1.使用 . 成员访问运算符来访问属性,'.'可以理解为"的"
console.log(student.name);
//2.使用[]来访问属性,此时属性应该加上引号
console.log(student['height']);
//3.调用方法,别忘了加上()
student.sayHello();

2.使用new Object来创建对象.

var student = new Object();
student.name = "蔡徐坤";
student.height = 175;
student['weight'] = 170;
student.sayHello = function() {
    console.log("hello");
}
console.log(student.name);
console.log(student['height']);
student.sayHello();

注意:使用{}创建对象也可以随时使用student.name = '蔡徐坤';这样的方式来新增属性.

3.使用构造函数来创建对象.

function 构造函数名(形参) {

        this.属性值 = 值;

        this.方法 = function...

}

var obj = new 构造函数名(形参); 

注意:

1.在构造函数内部使用this关键字来表示当前构造的对象

2.构造函数的首字母一般是大写的.

3.构造函数的函数名可以是名词.

4.构造函数不需要return

5.创建对象的时候必须使用new关键字. 

        function Cat(name, type, sound) {
            this.name = name;
            this.type = type;
            this.miao = function () {
                console.log(sound); // 别忘了作⽤域的链式访问规则
            }
        }

        var mimi = new Cat('咪咪', '中华田园猫', '喵');
        console.log(mimi);
        mimi.miao();

 

 

 

 

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

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

相关文章

Vue2+ElementUI下拉、Select组件的封装

Vue2ElementUI下拉、Select组件的封装&#xff1a;引言 在 Vue2 项目中&#xff0c;ElementUI 的 el-select 组件是常用的下拉选择框组件。它提供了丰富的功能和样式&#xff0c;可以满足各种需求。但是&#xff0c;在实际开发中&#xff0c;我们经常会遇到一些重复性的需求&a…

男人的玩具系统wordpress外贸网站主题模板

垂钓用品wordpress外贸模板 鱼饵、鱼竿、支架、钓箱、渔线轮、鱼竿等垂钓用品wordpress外贸模板。 https://www.jianzhanpress.com/?p3973 身体清洁wordpress外贸网站模板 浴盐、防蚊液、足部护理、沐浴液、洗手液、泡澡用品wordpress外贸网站模板。 https://www.jianzhan…

【CSP试题回顾】201612-1-中间数

CSP-201612-1-中间数 解题思路 输入和初始化&#xff1a;首先&#xff0c;程序读入一个整数n&#xff0c;表示序列中数的个数。接着&#xff0c;读入n个正整数并存储在numList向量中&#xff0c;这些数依次表示a1, a2, …, an。 排序&#xff1a;使用sort函数对numList进行升…

前端运算符比较与计算中的类型转换,运算规则

题目&#xff1a; 下面表达式的值分别都是什么&#xff08;类型转换&#xff09; 0 0 0 2 true 2 false false false false 0 false undefined false null null undefined\t\r\n 0JS中的原始类型有哪些 原始值类型就是 存储的都是值&#xff0c;没有函数可以调用的。…

【Python时序预测系列】基于LSTM+Attention实现单变量时间序列预测(源码)

这是我的第232篇原创文章。 一、引言 长短期记忆网络&#xff08;LSTM&#xff09;结合注意力机制是一种常用的深度学习模型结构&#xff0c;用于处理序列数据。LSTM是一种循环神经网络&#xff08;RNN&#xff09;的变体&#xff0c;专门设计用来解决长序列数据的梯度消失和…

不知道去哪里找拍抖音的短视频素材?分享几个抖音短视频素材资源网站

嘿嘿&#xff0c;小伙伴们&#xff0c;是不是在抖音创作的路上遇到了素材荒&#xff1f;别担心&#xff0c;我这里有几个超给力的短视频素材网站推荐给大家&#xff0c;保证让你的创作不再为素材发愁 1&#xff0c;蛙学府资源 这个网站简直是短视频素材的大宝库&#xff0c;无…

CSS盒子模型笔记

尚硅谷学习视频链接&#xff1a;117_CSS_盒子模型的组成部分_哔哩哔哩_bilibili 1、盒子组成 盒子组成 content内容 padding border &#xff08;margin不包含在盒子内&#xff09; 2、div样式width、height 当css3属性box-sizingcontent-box&#xff08;默认&#xff0…

基于Java的超市自助付款系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 商品类型模块2.2 商品模块2.3 超市账单模块 三、界面展示3.1 登录注册模块3.2 超市商品类型模块3.3 超市商品模块3.4 商品购买模块3.5 超市账单模块 四、部分源码展示4.1 实体类定义4.2 控制器接口 五、配套文档展示六、…

乐优商城(八)商品详情

1. 搭建商品详情微服务 当用户搜索到商品后&#xff0c;如果想要了解商品的更多信息&#xff0c;就需要进入商品详情页。 由于商品详情浏览量比较大&#xff0c;所以我们会创建一个微服务&#xff0c;用来展示商品详情。我们的商品详情页会采用 Thymeleaf 模板引擎渲染后&…

Linux高级编程:网络

回顾&#xff1a; 进程间的通信&#xff1a; 同一主机内通信&#xff1a; 传统的进程间通信方式&#xff08;管道、信号&#xff09;&#xff1b; IPC对象&#xff08;共享内存&#xff0c;消息队列&#xff0c;信号量集&#xff09;&#xff1b; 不同主机间进程的通信&#…

Linux之线程概念

目录 一、细粒度划分 1、堆区细粒度划分 2、物理内存和可执行程序细粒度划分 3、虚拟地址到物理地址的转化 二、线程的概念 1、基本概念 2、线程的优点 3、线程的缺点 4、线程异常 5、线程用途 三、Linux下的进程和线程 一、细粒度划分 1、堆区细粒度划分 在语言…

【MySQL】索引优化与关联查询优化

数据库调优的几个维度&#xff1a; 索引失效&#xff0c;没有充分用到索引——索引建立关联查询太多JOIN——SQL优化服务器调优以及各个参数设置——调整my.cnf数据过多——分库分表 SQL查询优化的几种方式&#xff1a; 物理查询优化&#xff1a;通过索引以及表连接方式进行…

Day30-Linux基础阶段总复习

Day30-Linux基础阶段总复习 1. 运维人员的三个核心职责&#xff08;了解&#xff09;2. 企业网站和应用的可用性的衡量标准&#xff08;重点&#xff09;2.1 高并发企业业务写入流程图2.2 中小型企业案例 3. Linux系统诞生发展过程中的关键代表人物4. 企业场景如何针对不同的业…

Springboot配置MySQL数据库

Springboot配置MySQL数据库 一、创建springboot项目&#xff0c;并添加如下依赖 <dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope> </dependency>二、在applica…

Django框架——路由

上篇文章我们学习了Django框架——请求与响应&#xff0c;这篇文章我们学习Django框架——路由。本次学习过程中使用的项目目录如下图所示&#xff1a; 大家放心&#xff0c;这个是新建的Django项目&#xff0c;还没编写任何代码&#xff0c;这里展示目录是为了大家更好地理解本…

力扣大厂热门面试算法题 - 矩阵

解数独&#xff0c;单词搜索&#xff0c;被围绕的区域。每题做详细思路梳理&#xff0c;配套Python&Java双语代码&#xff0c; 2024.03.07 可通过leetcode所有测试用例。 目录 37. 解数独 解题思路 完整代码 Python Java 79. 单词搜索 解题思路 完整代码 Python…

金融行业数据安全面临的问题及解决办法

金融行业包括商业银行业务、证券业务、保险业务、基金业务、信托业务等&#xff0c;因此数据类型多种多样&#xff0c;并且数据涉及主体众多&#xff0c;应用场景上较为多样复杂&#xff0c;在数据交换上存在安全、合规、可控、可靠、高效等需求。首先&#xff0c;我们来看一下…

c++初阶------类和对象(六大默认构造函数的揭破)

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

部署YOLOv8模型的实用常见场景

可以的话&#xff0c;GitHub上点个小心心&#xff0c;翻不了墙的xdm&#xff0c;csdn也可以点个赞&#xff0c;谢谢啦 车流量检测&#xff08;开源代码github&#xff09;&#xff1a; test3 meiqisheng/YOLOv8-DeepSORT-Object-Tracking (github.com) 车牌检测&#xff0…

代码随想录算法训练营第11天

20. 有效的括号 方法&#xff1a; 1. 如果 !st.empty() return false2.如果st.top() ! s[i] return false3. 如果 st.empty() return false注意&#xff1a; 以下这种写法 不满足 题目要求的第二点&#xff0c;不能以正确的顺序闭合 if(s[i] st.top()){return true;s…