JavaScript入门宝典:核心知识全攻略(上)

在这里插入图片描述


文章目录

  • 前言
  • 一、JavaScript的定义
  • 二、JavaScript的使用方式
    • 1. 行内式(主要用于事件)
    • 2. 内嵌式
    • 3. 外链式
  • 三、变量和数据类型
    • 1. 定义变量
    • 2. JavaScript注释
    • 3. 数据类型
    • 4. 变量命名规范
    • 5. 匈牙利命名风格
  • 四、函数定义和调用
    • 1. 函数定义
    • 2. 函数调用
    • 3. 定义有参数有返回值的函数
  • 五、变量作用域
    • 1. 局部变量
    • 2.全局变量
  • 六、条件语句
    • 1. 语法
    • 2. 比较运算符
    • 3. 逻辑运算符


前言

本文将带你快速了解JavaScript的核心知识,包括定义、使用、变量、数据类型、函数、作用域和条件语句。


一、JavaScript的定义

JavaScript是运行在浏览器端的脚步语言, 是由浏览器解释执行的, 简称js, 它能够让网页和用户有交互功能, 增加良好的用户体验效果。

前端开发三大模块:

  • HTML:负责网页结构
  • CSS:负责网页样式
  • JavaScript:负责网页行为, 比如:网页与用户的交互效果

JavaScript是运行在浏览器端的脚步语言,它的作用就是负责网页和用户的交互效果。


二、JavaScript的使用方式

1. 行内式(主要用于事件)

<input type="button" name="haha" onclick="alert('haha!');">

2. 内嵌式

<script type="text/javascript">
	alert('haha!');
</script>

3. 外链式

<script type="text/javascript" src="js/index.js"></script>

三、变量和数据类型

1. 定义变量

var 变量名 = 值;

var iNum = 123;
var sTr = 'haha';
var iNum=1,sTr='hahaha',sCount='3';

2. JavaScript注释

<script type="text/javascript">    

// 单行注释
var iNum = 123;
/*  
    多行注释
    1、...
    2、...
*/
var sTr = 'hello';
</script>

3. 数据类型

js中有六种数据类型,包括五种基本数据类型一种复杂数据类型(object)

五种基本数据类型:

  1. number 数字类型
  2. string 字符串类型
  3. boolean 布尔类型
  4. undefined 变量声明未初始化
  5. null 空对象

一种复合类型:

object 后面学习的数组、函数和JavaScript对象都属于复合类型

//1.1 数字 number
var iOne = 10.1;

//1.2 字符串 string
var sStr = '1234';

//1.3 布尔 boolean; 
var bIsTrue = false;

//1.4 未定义 undefined
var unData;

//1.5 null 表示空对象
var nullData = null;

//1.6 object 表示对象类型
var oObj = {
   name:"隔壁老王",
   age:88
}
// 获取变量的类型
var type = typeof(oObj);
alert(type);
// 获取对象的name属性
alert(oObj.name);

4. 变量命名规范

  1. 区分大小写
  2. 第一个字符必须是字母、下划线(_)或者美元符号($)
  3. 其他字符可以是字母、下划线、美元符号或数字

5. 匈牙利命名风格

  • 对象o Object    比如:oDiv
  • 数组a Array    比如:aItems
  • 字符串s String    比如:sUserName
  • 整数i Integer    比如:iItemCount
  • 布尔值b Boolean    比如:bIsComplete
  • 浮点数f FLoat    比如:fprice
  • 函数fn Function    比如:fnHandler

四、函数定义和调用

1. 函数定义

<script type="text/javascript">
    // 函数定义
    function fnAlert(){
        alert('hello!');
    }
</script>

2. 函数调用

<script type="text/javascript">
    // 函数定义
    function fnAlert(){
        alert('hello!');
    }
    // 函数调用
    fnAlert();
</script>

3. 定义有参数有返回值的函数

<script type="text/javascript">
function fnAdd(iNum01,iNum02){
    var iRs = iNum01 + iNum02;
    return iRs;
    alert('here!');
}

var iCount = fnAdd(3,4);
alert(iCount);  //弹出7
</script>

五、变量作用域

1. 局部变量

局部变量 就是在函数内使用的变量,只能在函数内部使用。

<script type="text/javascript">
    function myalert(){
        // 定义局部变量
        var b = 23;
        alert(b);
    }
    myalert(); // 弹出23
    alert(b);  // 函数外使用出错
</script>

2.全局变量

全局变量 就是在函数外定义的变量,可以在不同函数内使用。

<script type="text/javascript">
    // 定义全局变量
    var a = 12;
    function myalert(){
        // 修改全局变量
        a++;
    }
    myalert();
    alert(a);  // 弹出13    
</script>

六、条件语句

1. 语法

  1. if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
  2. if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
  3. if...else if....else 语句 - 使用该语句来判断多条件,执行条件成立的语句

2. 比较运算符

假如 x = 5, 查看比较后的结果:

比较运算符描述例子
==等于x == 8 为 false
===全等(值和类型)x === 5 为 true; x === “5” 为 false
!=不等于x != 8 为 true
>大于x > 8 为 false
<小于x < 8 为 true
>=大于或等于x >= 8 为 false
<=小于或等于x <= 8 为 true

比较运算符示例代码:

var iNum01 = 12;
var sNum01 = '12';

if(iNum01==12){
    alert('相等!');
}
else{
    alert('不相等!')
}

// "==" 符号默认会将符号两边的变量转换成数字再进行对比,这个叫做隐式转换
if(sNum01==12){
    alert('相等!');
}
else{
    alert('不相等!')
}

// "===" 符号不会转换符号两边的数据类型
if(sNum01===12){
    alert('相等!');
}
else{
    alert('不相等!')
}

// 多条件判断
var sFruit = "苹果";
if (sFruit == "苹果") {
    alert("您选择的水果是苹果");
} else if (sFruit == "鸭梨") {
    alert("您选择的水果是鸭梨");
} else {
    alert("对不起,您选择的水果不存在!")
}

3. 逻辑运算符

假如 x=6, y=3, 查看比较后的结果:

比较运算符描述例子
&&and(x < 10 && y > 1) 为 true
||or(x == 5 || y == 5) 为 false
!not!(x==y) 为 true

逻辑运算符示例代码:

var x = 6;
var y = 3;

if(x < 10 && y > 1){
    alert('都大于');
}
else{
    alert('至少有一个不大于');
}

if(x > 5 || y > 7 ){
    alert('至少有一个大于');
}
else{
    alert('都不大于');
}

if(!(x == y)){
    alert('等于')
}
else{
    alert('不等于')
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ctfshow-web入门-命令执行(web30-web36)

目录 1、web30 2、web31 3、web32 4、web33 5、web34 6、web35 7、web36 命令执行&#xff0c;需要严格的过滤 1、web30 代码差不多&#xff0c;就是过滤的东西变多了&#xff1a; preg_match("/flag|system|php/i", $c) 这里不让用 system &#xff0c;我们…

宝贝,带上WebAssembly,换个姿势来优化你的前端应用

❝ 在你没崛起之前&#xff0c;脸是用来丢的 ❞ 大家好&#xff0c;我是「柒八九」。一个「专注于前端开发技术/Rust及AI应用知识分享」的Coder ❝ 此篇文章所涉及到的技术有 WebAssembly Rust Web Worker( comlink) wasm-pack Photon ffmpeg.wasm 脚手架生成前端项目 ❞ 因为&…

Yolo-v5模型训练速度,与GeForce的AI算力描述

1.GeForce RTX3070 Ti官网参数&#xff1a; GeForce RTXTM 3070 Ti 和 RTX 3070 显卡采用第 2 代 NVIDIA RTX 架构 - NVIDIA Ampere 架构。该系列产品搭载专用的第 2 代 RT Core &#xff0c;第 3 代 Tensor Core、全新的 SM 多单元流处理器以及高速显存&#xff0c;助您在高性…

Hi3519DV500 学习摘录

文章目录 一、问题1、autoreconf2、open-vm-tools 安装3、NFS4、pushd: not found 一、问题 1、autoreconf automake version mismatch | AM_INIT_AUTOMAKE | 版本不匹配 autoreconf ./configure make2、open-vm-tools 安装 open-vm-tools 安装 # 用于安装和升级的命令是相…

Codeforces Round 951 (Div. 2) C、D(构造、线段树)

1979C - Earning on Bets 构造题&#xff1a;观察到k范围很小&#xff0c;首先考虑最终硬币总数可以是多少&#xff0c;我们可以先假设最终的硬币总数为所有k取值的最小公倍数&#xff0c;这样只需要满足每个结果添加1枚硬币即可赚到硬币。 // Problem: C. Earning on Bets //…

​​​​【动手学深度学习】残差网络(ResNet)的研究详情

目录 &#x1f30a;1. 研究目的 &#x1f30a;2. 研究准备 &#x1f30a;3. 研究内容 &#x1f30d;3.1 残差网络 &#x1f30d;3.2 练习 &#x1f30a;4. 研究体会 &#x1f30a;1. 研究目的 了解残差网络&#xff08;ResNet&#xff09;的原理和架构&#xff1b;探究残…

【Vue】声明式导航-导航链接

文章目录 一、引入二、解决方案三、代码示例四、声明式导航-两个类名1&#xff09;router-link-active2&#xff09;router-link-exact-active 一、引入 但凡说到声明式导航&#xff0c;都需要想到router-link 需求 实现导航高亮效果 如果使用a标签进行跳转的话&#xff0c;需要…

JSONPath使用指南(掌握JSON数据提取)

大家好&#xff0c;在处理 JSON&#xff08;JavaScript Object Notation&#xff09;数据时&#xff0c;有时需要从复杂的结构中提取特定部分。JSONPath 就是一个非常有用的工具&#xff0c;它提供了一种简洁而强大的方式来定位和提取 JSON 数据中的元素。无论是在 Web 开发中处…

【C++ | 析构函数】类的析构函数详解

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-06-06 1…

上海亚商投顾:微盘股指数大跌超6% 全市场仅500余只个股上涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整&#xff0c;创业板指午后一度跌超1%&#xff0c;微盘股指数盘中跌逾7%&#xff0c;小市值个…

YOLO系列模型 pt文件转化为ONNX导出

文章目录 啥是onnx怎么导出导出之后 啥是onnx Microsoft 和合作伙伴社区创建了 ONNX 作为表示机器学习模型的开放标准。许多框架&#xff08;包括 TensorFlow、PyTorch、scikit-learn、Keras、Chainer、MXNet 和 MATLAB&#xff09;的模型都可以导出或转换为标准 ONNX 格式。 在…

09.0手工制作docker镜像-单服务ssh

手动将容器保存为镜像-单服务ssh 本页测试内容&#xff0c;将centos6.9镜像安装ssh服务并提交新的镜像并可使用。 docker commit 容器id或者容器的名字 新的镜像名字[:版本号可选] docker commit test centos6.9-ssh:v11&#xff09;基于容器制作镜像&#xff0c;首先创建一个…

DP:子序列模型

子数组vs子数列 1、子数组&#xff08;n^2&#xff09; 子序列(2^n) 2、子数组是子序列的一个子集 3、子数组必须连续&#xff0c;子序列可以不连续 一、最长递增子序列 . - 力扣&#xff08;LeetCode&#xff09; 算法原理&#xff1a; 1、状态表示&#xff…

使用命令给电脑添加虚拟网卡和IP

目录 1、添加网卡 1-1、windows系统添加网卡 1-2、Linux系统中添加网卡 2、添加IP和DNS 2-1、添加IP 2-2、 设置DNS 3、删除网卡 3-1、Windows: 3-2、Linux 3-3、macOS 4、示例&#xff1a; 首先以管理员方式进入CMD命令行&#xff1b; 点击“开始”->“管理员…

HLA高层体系结构1.0.0版本

名&#xff1a;高层体系结构&#xff08;High Level Architecture&#xff0c;HLA&#xff09; 高层体系结构&#xff08;High Level Architecture&#xff0c;HLA&#xff09;是从体系结构上建立这样一个框架&#xff0c;它能尽量涵盖M&S领域中所涉及的各种不同类型的仿真…

springboot启动配置文件-bootstrap.yml常用基本配置

4.1.5.配置文件 SpringBoot的配置文件支持多环境配置&#xff0c;基于不同环境有不同配置文件&#xff1a; 说明&#xff1a; 文件说明bootstrap.yml通用配置属性&#xff0c;包含服务名、端口、日志等等各环境通用信息bootstrap-dev.yml线上开发环境配置属性&#xff0c;虚…

微服务开发与实战Day01 - MyBatisPlus

一、微服务 概念&#xff1a;微服务是一种软件架构风格&#xff0c;它是以专注于单一职责的很多小型项目为基础&#xff0c;组合除复杂的大型应用。 课程安排&#xff1a; https://www.bilibili.com/video/BV1S142197x7/?spm_id_from333.1007.top_right_bar_window_history.…

41【Aseprite 作图】粉红宫灯——拆解

1 宫灯轮廓 上面三角&#xff0c;下面3 3 3 &#xff08;粉色在后面&#xff0c;做轮廓&#xff09;&#xff0c;棕色在外面&#xff0c;看做是灯骨&#xff08;竖着更长&#xff09;&#xff1b;中间是横着做灯骨 尾部的彩带&#xff0c;下面粉色更浅&#xff0c;上面绿色更浅…

LabVIEW飞机发动机测试与故障诊断系统

LabVIEW飞机发动机测试与故障诊断系统 基于LabVIEW开发了一个飞机发动机测试与故障诊断系统&#xff0c;能够实时监测发动机的运行参数&#xff0c;进行数据采集与分析&#xff0c;并提供故障诊断功能。系统采用高精度传感器和数据采集硬件&#xff0c;适用于发动机的性能测试、…

Kaggle——Deep Learning(使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络)

1.单个神经元 创建一个具有1个线性单元的网络 #线性单元 from tensorflow import keras from tensorflow.keras import layers #创建一个具有1个线性单元的网络 modelkeras.Sequential([layers.Dense(units1,input_shape[3]) ]) 2.深度神经网络 构建序列模型 #构建序列模型 …