【JavaScript】JS基础语法

news2025/2/25 0:14:04

1 JavaScript 的书写形式

1.1 行内式

直接嵌入到 html 元素内部

<input type="button" value="按钮" onclick="alert('hello JavaScript')" >

1.2 内嵌式

写在script标签内

<script>alert("haha")</script>

1.3 外部式

写到单独的 .js 文件中

<script src="hello.js"></script>
alert("hehe");

1.4 注释

单行注释 //
多行注释 /* */

1.5 输入输出

输入:prompt
弹出一个输入框

prompt("请输入账号:");

在这里插入图片描述

输出:alert
弹出一个警示对话框, 输出结果

alert("hello JavaScript");

在这里插入图片描述
输出: console.log
在控制台打印一个日志(供程序员看)

console.log("你好程序猿");

在这里插入图片描述
重要概念:
console 是一个 js 中的 “对象”
. 表示取对象中的某个属性或者方法. 可以直观理解成 “的”
console.log 就可以理解成: 使用 “控制台” 对象 “的” log 方法

2 语法概览

2.1 变量的基本使用

创建变量(变量定义/变量声明/变量初始化)

var name = 'zhangsan';
var age = 18;

var 是 JS 中的关键字, 表示这是一个变量

代码示例: 弹框提示用户输入信息, 再弹框显示

var name1 = prompt("请输入姓名:");
var age = prompt("请输入年龄:");
var school = prompt("请输入学校:");
alert("姓名:" + name1 + " " + "年龄:" + age + " " + "学校:" + school);

在这里插入图片描述

2.2 理解动态类型

JS 的变量类型是程序运行过程中才确定的(运行到 = 语句才会确定类型)

var a = 10;     // 数字
var b = "hehe"; // 字符串

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

var a = 10;    // 数字
a = "hehe";    // 字符串

这一点和 C ++、Java 这种静态类型语言差异较大

2.3 基本数据类型

JS 中内置的几种类型:
🚓number: 数字. 不区分整数和小数.
🚓boolean: true 真, false 假.
🚓string: 字符串类型.
🚓undefined: 只有唯一的值 undefined. 表示未定义的值.
🚓null: 只有唯一的值 null. 表示空值.

2.3.1 number数字类型

JS 中不区分整数和浮点数, 统一都使用 “数字类型” 来表示

特殊的数字值 :
🚌Infinity: 无穷大, 大于任何数字. 表示数字已经超过了 JS 能表示的范围.
🚌-Infinity: 负无穷大, 小于任何数字. 表示数字已经超过了 JS 能表示的范围.
🚌NaN: 表示当前的结果不是一个数字.

var max = Number.MAX_VALUE;
// 得到 Infinity
console.log(max * 2);
// 得到 -Infinity
console.log(-max * 2);
// 得到 NaN
console.log('hehe' - 10);

2.3.2 string 字符串类型

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

如果字符串中本来已经包含引号,就使用转义字符:

var a = "hello "world"";  //错误
var a = "hello \"world\"";  //正确

var a = 'hello "world"';  //正确
var a = "hello 'world'";  //正确
(1)求字符串长度:

使用 String 的 length 属性即可

var a = "hello";
console.log(a.length);

在这里插入图片描述

(2)字符串拼接:

使用 + 进行拼接:

var a = "hello";
var b = "world";
console.log(a+b);

在这里插入图片描述
数字和字符串也可以进行拼接:

var a = "hello";
var c = 18;
console.log(a+c);

在这里插入图片描述

2.3.3 boolean布偶类型

Boolean 参与运算时当做 1 和 0 来看待

console.log(true+1);
console.log(false+1);

在这里插入图片描述

2.3.4 undefined未定义数据类型

如果一个变量没有被初始化过, 结果就是 undefined, 是 undefined 类型

var a;
console.log(a);

在这里插入图片描述
undefined 和字符串进行相加, 结果进行字符串拼接:

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

在这里插入图片描述
undefined 和数字进行相加, 结果为 NaN:

var a;
console.log(a+10);

在这里插入图片描述

2.4.5 null空值类型·

null 表示当前的变量是一个 “空值”

var a = null;
console.log(a+10);
console.log(a+"10");

在这里插入图片描述
注意:
🚘null 表示当前的值为空. (相当于有一个空的盒子)
🚘undefined 表示当前的变量未定义. (相当于连盒子都没有)

2.4 数组

2.4.1 创建数组

(1)使用new关键字创建:

var arr = new Array();

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

var arr1 = [];
var arr2 = [1,'2',true];

注意:JS 的数组不要求元素是相同类型

2.4.2 获取数组元素

使用下标获取:

var arr = [1,2,3];
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
console.log(arr[3]);

在这里插入图片描述

2.4.3 新增数组元素

(1)通过修改 length 新增

新增元素默认为undefined

var arr = [9, 5, 2, 7];

arr.length = 6;

console.log(arr);

console.log(arr[4], arr[5]);

在这里插入图片描述
(2)通过下标新增

var arr = [];
arr[2] = 10;
console.log(arr)

在这里插入图片描述
(3)使用 push 进行追加元素
代码示例: 给定一个数组, 把数组中的奇数放到一个 newArr 中:

var arr = [9, 5, 2, 7, 3, 6, 8];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
    if (arr[i] % 2 != 0) {
        newArr.push(arr[i]);
   }
}
console.log(newArr);

在这里插入图片描述

2.4.4 删除数组中的元素

使用 splice 方法删除元素

var arr = [9, 5, 2, 7];
// 第一个参数表示从下表为 2 的位置开始删除. 第二个参数表示要删除的元素个数是 1 个
arr.splice(2, 1);
console.log(arr);

在这里插入图片描述

2.5 函数

2.5.1 语法格式

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

function 函数名(形参列表) {
    函数体
    return 返回值;
}

调用函数

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

在这里插入图片描述

2.5.2 关于参数个数

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

  1. 如果实参个数比形参个数多, 则多出的参数不参与函数运算
sum(10, 20, 30);    // 30
  1. 如果实参个数比形参个数少, 则此时多出来的形参值为 undefined
sum(10);    // NaN, 相当于 num2 为 undefined.

2.5.3 函数表达式

另外一种函数的定义方式

var add = function() {
 var sum = 0;
    for (var i = 0; i < arguments.length; i++) {
        sum += arguments[i];
   }
    return sum;
}

此时形如 function() { } 这样的写法定义了一个匿名函数, 然后将这个匿名函数用一个变量来表示
后面就可以通过这个 add 变量来调用函数了.

2.6 对象

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

每个对象中包含若干的属性和方法.
🚲属性: 事物的特征
🚲方法: 事物的行为

2.6.1 使用 字面量 创建对象

var a = {};  // 创建了一个空的对象

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

进行使用:

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

2.6.2 使用 new Object 创建对象

var student = new Object(); // 和创建数组类似

student.name = "蔡徐坤";

student.height = 175;

student['weight'] = 170;

student.sayHello = function () {
    console.log("hello");
}

2.6.3 使用 构造函数 创建对象

使用构造函数可以很方便的创建多个对象
语法规则:

function 构造函数名(形参) {
    this.属性 =;
    this.方法 = function...

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

实例:

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

   }
}

var mimi = new Cat('咪咪', '中华田园喵', '喵');

var xiaohei = new Cat('小黑', '波斯喵', '猫呜');

var ciqiu = new Cat('刺球', '金渐层', '咕噜噜');

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

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

相关文章

京东大数据平台(京东数据分析):9月京东牛奶乳品排行榜

鲸参谋监测的京东平台9月份牛奶乳品市场销售数据已出炉&#xff01; 9月份&#xff0c;牛奶乳品市场销售呈大幅上涨。鲸参谋数据显示&#xff0c;今年9月&#xff0c;京东平台牛奶乳品市场的销量为2000万&#xff0c;环比增长约65%&#xff0c;同比增长约3%&#xff1b;销售额为…

S32DS踩坑日记四-增加I2C

添加采集温度的ADC之后&#xff0c;又增加了两个LPUART。之后又打算先尝试着把RTC调试出来&#xff0c;然后就遇到莫名奇妙的问题了。 RTC采用的MCP7940N芯片&#xff0c;是I2C接口的。 先配置的引脚&#xff1a; 然后增加I2C的驱动&#xff1a; 在代码中增加初始化和发送测…

进口跨境商城源码(海关179接口+跨境报关商城+多平台搭建+多终端支持)

随着互联网的普及和电子商务的快速发展&#xff0c;进口跨境电商商城逐渐成为消费者购买海外商品的主要渠道。为了满足消费者的需求&#xff0c;许多企业都开始开发自己的进口跨境电商商城源码&#xff0c;以提高商城的效率和稳定性。 其中&#xff0c;海关179接口是进口跨境电…

竖版视频怎么做二维码?扫码播放竖版视频的方法

当我们在将视频转二维码图片展示的时候&#xff0c;一般横版视频在手机展示不会有影响&#xff0c;但是竖版视频会默认用横版的方式播放就会导致无法清晰的看到画面的内容&#xff0c;那么如何将竖版视频生成二维码是很多小伙伴头疼的一个问题。那么下面教大家使用二维码生成器…

yolov5 v7.0转ncnn时问题解决

yolov5 v7.0转ncnn时遇到很多问题&#xff0c;ncnn版本20231027以下仅做记录&#xff1a; 1.通过官方代码&#xff0c;export.py 转onnx&#xff0c;指定–dynamic --simplify参数 2.编译并安装ncnn&#xff0c;通过onnx2ncnn将onnx转化为ncnn.bin和ncnn.param 3.加载ncnn模…

在规划项目进度时,必须关注的两个关键点

要想确保项目的成功&#xff0c;项目经理需要制定一个周密的计划&#xff0c;以便快速有效地应对可能出现的问题。这是最佳实践问题管理过程的核心&#xff0c;也是良好项目管理的本质要求。 在规划项目进度时&#xff0c;应该至少关注两个关键方面。 1、进度规划要做到粗细…

一个极好用的浏览器标签页插件

这是我登录后&#xff0c;并且上传了个人壁纸的页面 Br标签页 一 . 我们来看看界面和功能1.注册登录2.首页及右键功能3.添加小组件和app网址4.切换壁纸5. 计划页面 二 . Edge浏览器安装和chrome&#xff08;谷歌&#xff09;浏览器安装1. Edge浏览器安装2. chrome&#xff08;谷…

java--java的参数传递机制

1.java的参数传递机制都是&#xff1a;值传递 ①所谓值传递&#xff1a;值的是在传递实参给方法的形参的时候&#xff0c;传输的是实参变量中存储的值的副本。 ②实参&#xff1a;在方法内部定义的变量。 ③形参&#xff1a;定义方法时"(...)"中所声明的参数。 2.…

区块链-蚂蚁链(阿里系产品),至信链(腾讯系),长安链(国家队)

目录 区块链-蚂蚁链&#xff08;阿里系产品&#xff09;,至信链&#xff08;腾讯系&#xff09;,长安链&#xff08;国家队&#xff09; ①蚂蚁链&#xff08;阿里系产品&#xff09; ②至信链&#xff08;腾讯系&#xff09; ③长安链&#xff08;国家队&#xff09; Hyp…

基于世界杯算法的无人机航迹规划-附代码

基于世界杯算法的无人机航迹规划 文章目录 基于世界杯算法的无人机航迹规划1.世界杯搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用世界杯算法来优化无人机航迹规划。 1.世界杯…

【C++ 系列文章 -- 程序员考试 201811 下午场 C++ 专题 】

1.1 C 题目六 阅读下列说明和C代码&#xff0c;填写程序中的空&#xff08;1&#xff09; &#xff5e;&#xff08;5&#xff09;&#xff0c;将解答写入答题纸的对应栏内。 【说明】 以下C代码实现一个简单乐器系统&#xff0c;音乐类&#xff08;Music&#xff09;可以使用…

安装2023年10月更新后,继续在Win10上使用IE的方法

简介 由于微软一直试图让Win10的用户迁移到Edge浏览器&#xff0c;因此不断地对Win10上的IE使用加以限制。 先前我们还可以通过金庸IEToEdge BHO的方式继续使用IE。 通过禁用IEToEdge BHO&#xff0c;禁止IE自动跳转&#xff08;重定向&#xff09;到EDGEhttps://blog.csdn.…

5.2 参照完整性

思维导图&#xff1a; 5.2.1 定义参照完整性 5.2 参照完整性笔记&#xff1a; 一、概念 参照完整性 (Referential Integrity)&#xff1a;确保关系数据库中的数据表间的关系始终保持一致性。外键 (Foreign Key)&#xff1a;一个表中的列或列组&#xff0c;用于标识另一个表中…

QMI8658A_QMC5883L(9轴)-EVB 评估板-使用说明书

文章目录 0.前言 1.硬件准备 1.1 I2C 接口 1.2 USART 接口 2.运行程序 2.1 QMI8658A 常值零偏校准 2.2 QMC5883L地磁传感器校准 2.3 校准步骤 3.与 example-algo-visualizer.exe 上位机通信协议 0.前言 【相关博文】 【QMI8658 - 姿态传感的零偏(常值零偏)标定】 【QMC5883L-磁…

计算机毕业设计选题推荐-大学生心理健康测评微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

[学习笔记]TypeScript查缺补漏(二):类型与控制流分析

文章目录 类型约束基本类型联合类型 控制流分析instanceof和typeof类型守卫和窄化typeof判断instanceof判断in判断内建函数&#xff0c;或自定义函数赋值布尔运算 保留共同属性 字面量类型&#xff08;literal type&#xff09;as const 作用 类型约束 TypeScript中的类型是一…

产品经理一定要学会的原型交互规范设计

一、主级按钮 序号1、序号2&#xff1a;主级按钮 一个按钮区最多一个主级按钮&#xff0c;也可以没有 二、线框按钮 序号3&#xff1a;如果不是非常为了突出“完成”、“推荐”的操作&#xff0c;可以多采用线框按钮 三、红色按钮 序号4&#xff1a;红色按钮不需要选中颜色这…

Vue3.0插槽:VOA模式

用法&#xff1a; 父组件App.vue <template><div><!--将html代码插入到子组件中带默认名称的插槽中--><AChild><!--这段html会插入到AChild组件中<slot></slot>插槽中--><!-- 注意&#xff1a;写在父组件中的html代码只能在父组…

Redis之持久化(RDB和AOF)

文章目录 前言一、RDB1.介绍2.redis.config有关配置3.触发4.恢复5.优缺点 二、AOF1.介绍2.redis.config配置3.启动4.恢复5.重写6.优缺点 总结 前言 Redis 是内存数据库&#xff0c;即数据存储在内存。 如果不将内存中的数据保存到磁盘&#xff0c;一旦服务器进程退出&#xff…

uniapp js-sdk插件之js实用工具包

插件介绍 插件为uniapp前端js工具包&#xff0c;工具包包含了众多模块&#xff0c;数组、颜色、日期、加解密、函数、数字、对象、请求、字符串、验证等模块&#xff0c;可以让您的开发得心应手&#xff0c;不需要为了一个功能需要花费大量的时间从网上再去搜索&#xff0c;本…