1_js基本简介数据类型变量的使用

news2024/9/23 19:18:01

1. 编程语言简介

1.1 计算机编程语言
  • 计算机编程语言是程序设计的最重要的工具,它是指计算机能够接受和处理的、具有一定语法规则的语言。从计算机诞生,计算机语言经历了机器语言、汇编语言和高级语言几个阶段。

    • 高级语言:JavaScript,Java,C,C++,C#,Python,go,Scala

  • 计算机编程语言是指用于人与计算机之间通信的语言,是人与计算机之间传递信息的媒介,因为它是用来进行程序设计的,所以又称程序设计语言或者编程语言。

  • 计算机语言是一种特殊的语言。因为它是用于人与计算机之间传递信息的,所以人和计算机都能“读懂”。具体地说,一方面,人们要使用计算机语言指挥计算机完成某种特作,就必须对这种工作进行特殊描述,所以它能够被人们读懂。另一方面,计算机必须按计算机语言描述来行动,从而完成其描述的特定工作,所以能够被计算机“读懂”。

  • 站在人和计算机的角度来看待数字:

1.2 编译器

    简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

1.3 编程语言和标记语言区别
语言说明
编程语言编程语言有很强的逻辑能力。在编程语言里, 你会看到很多 if else 、for 、while等具有逻辑性和行为能力的指令,语法是非常灵活的。
标记语言(HTML)标记语言的语法是固定的,主要是用来做格式显示

2. 计算机基础

2.1 计算机组成

2.2 数据存储
  • 在计算机中使用二进制0和1来表示数据

  • 所有数据,包括文件、图片等最终都是以二进制数据(0 和 1)的形式存放在硬盘中的

2.3 数据存储单位
大小关系:bit < byte < kb < GB < TB<.....
  • 位(bit): 1bit 可以保存一个 0 或者 1 (最小的存储单位)

  • 字节(Byte):1B = 8b

  • 千字节(KB):1KB = 1024B

  • 兆字节(MB):1MB = 1024KB

  • 吉字节(GB): 1GB = 1024MB

  • 太字节(TB): 1TB = 1024GB

2.4 程序运行过程

  • 软件运行的大概过程:

    • 打开某个程序时,先从硬盘中把程序的代码加载到内存中

    • CPU执行内存中的代码

  • 案例:01.编程语言入门.html

3. 初始JavaScript

3.1 JavaScript 是什么

  • JavaScript 是世界上最流行的编程语言之一,是一种运行在浏览器的脚本语言 (Script 是脚本的意思)

    • 1995年发布,已经有了17年历史。

  • 脚本语言:不需要编译,运行过程中由浏览器内置引擎解释并逐行进行执行

  • 官方解释:JavaScriptJS)是一种具有函数优先特性的轻量级、解释型或者说即时编译型的编程语言。

3.2 JavaScript的作用
  • 表单动态校验(密码强度检测)

  • 网页特效

  • 服务端开发(Node.js)

  • 控制硬件-物联网(Ruff)

  • 游戏开发(cocos2d-js)

3.3 HTML/CSS/JS 的关系

3.4 浏览器如何执行JavaScript代码
  • 浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(称之为解释器)来执行 JS 代码 ,JS 引擎执行代码时逐行解释每一句源代码(转换为机器语言),然后由计算机去执行,所以 JavaScript 语言归为脚本语言,会逐行解释执行。

  • 浏览器分成两部分:渲染引擎和 JS 引擎

3.5 JavaScirpt的组成(非常重要)

  • ECMAScript

    • ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript或JScript,但实际上后两者是ECMAScript语言的实现和扩展。

    • ECMAScript:规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。

  • DOM:文档对象模型

    • 文档对象模型(DocumentObject Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色,内容等)

  • BOM:浏览器对象模型

    • 浏览器对象模型(Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。

3.6 JavaScript入门案例
  • JS和CSS样式一样有3种书写位置,分别为行内、内嵌和外部。

  • 行内式(了解就可以了)

<input type="button" value="点我试试" onclick="alert('Hello World')" />
  • 内嵌式

    • 学习过程中使用较多,实际开发中也会用到

<script>
    alert('Hello  World~!');
</script>
  • 外部JS文件

    • 主要用于实际开发

<script src="haha.js"></script>
  • 案例:02.js的三种引入方式.html

4. JavaScript注释

4.1 单行注释
  • 为了提高代码的可读性,JS与CSS一样,也提供了注释功能,JS中的注释主要有两种,分别是 单行注释和多行注释。

// 注释内容不会被执行
4.2 多行注释
  • 多行注释的注释方式如下:

/*
 * 注释内容 
*/
/* 注释内容 */ 
  • 案例:03.JS的注释.html

5. JavaScript输入输出语句

  • 在写代码的时候为了方便查看结果,所以需要将内容输出

  • JS中提供了一些输入输出语句,其常用的语句如下:

    • alert() 主要用来显示消息给用户,console.log() 用来给程序员自己看运行时的消息。

方法说明归属
alert(msg)浏览器弹出警示框浏览器
console.log(msg)浏览器控制台打印输出信息浏览器
prompt(info)浏览器弹出输入框,用户可以输入浏览器
  • 案例:04.JS的基本输出形式.html

6. 变量的概念

6.1 什么是变量
  • 变量:指值可以变化的量

    • 通俗:变量是用于关联数据的容器,我们可以通过变量名称获取,修改内存中的数据。

6.2 变量在内存中的存储
  • 变量是程序在内存中申请的一块用来存放数据的空间

  • 案例:05.变量的定义.html

  • 案例:06.变量的小案例.html

7. 变量的应用

7.1 声明变量
//  声明变量
var name; //  声明一个 名称为name的变量
  • var 是JS的关键字,用来声明变量( variable 变量的意思 ),使用该关键字声明变量后,计算机会自动为变量分配内存空间。

  • name是程序员定义的变量名称,可以通过变量名称访问对应的内存空间。

7.2 赋值
  • = 用来把右边的值赋给左边的变量,值会存储在name变量对应的内存中。

age = 20;  
7.3 改变变量的值和声明多个变量
  • 一个变量被重新复赋值后,它原有的值就会被覆盖,变量值将以最后一次赋的值为准。

var age = 20;
age = 21;   // 最后的结果就是21
  • 同时声明多个变量

    • 同时声明多个变量时,只需要写一个 var, 多个变量名之间使用英文逗号隔开。

    var age = 20,  name = 'bw', gender = 'male';
  • 声明变量特殊情况如下:

    情况说明结果
    var age ; console.log (age);只声明不赋值undefined
    console.log(age)不声明不赋值直接使用报错
  • 案例:07.变量的语法扩展.html

7.4 变量命名规范
  • 由字母(A-Za-z)、数字(0-9)、下划线(_)、美元符号( $ )组成

    • 正确的规范:userName,user_name,18aaa是错误的

    • 错误的规范:username

  • 严格区分大小写

    • var name 和 var Name是两个变量

  • 不能是关键字、保留字

    • 例如:var、for、while

  • 变量名必须有意义

  • 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写

    • 正确:userNameAndPassword

    • 错误:usernameandpassword

  • 案例:08.交换两个变量值.html

8. 数据类型

8.1 数据类型简介
  • 为什么需要数据类型

    • 不同的数据所需占用的存储空间是不同的,为了便于把数据分类充分利用存储空间,可以根据不同的数据类型进行选择。

  • 变量的数据类型

var age = 22;        // 这是一个数字型
var name = '张三';    // 这是一个字符串,字符串会加上单引号或者双引号
  • 在代码运行时,变量的数据类型是由JS引擎根据变量值的数据类型来判断的,运行完毕之后,变量就确定了数据类型。JavaScript是弱类型的语言,也就意味着同一个变量可以赋值为不同的类型。

var a = 2;     // a 为数字
a = "aa";      // a 为字符串
  • 数据类型的分类

    • 简单数据类型:Number,String,Boolean,Undefined,Null

  • 复杂数据类型 :object

  • 案例:09.变量的数据类型.html

8.2 基本数据类型
  • the default value of a variable in JavaScript is null or undefined(JavaScript 中变量的默认值为 null 或 undefined)

  • 数字型:Number

    • 数字类型既可以保存整数,也可以保存浮点数

var age = 21;       // 整数
var Age = 21.3747;  // 小数
  • 数字型范围

    • JavaScript中数值的最大和最小值

    • 最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308

    • 最小值:Number.MIN_VALUE,这个值为:5e-32

    • Infinity:代表无穷大,大于任何数值

    • -Infinity:代表无穷小,小于任何数值

    • NaN:Not a number,代表一个非数值

  • 如何判断类型是否为数字

    • isNaN:用来判断一个变量是否为非数字的类型

      • 不是数字返回 true,是数字返回false

     var usrAge = 21;
     var isOk = isNaN(userAge);
     console.log(isNum);
     var usrName = "andy";
     console.log(isNaN(userName));
  • 案例:10.数字型Number.html

  • 字符串型:String

    • 字符串型可以是引号中的任意文本,其语法为 双引号 " " 和 单引号' '

var strMsg = "aaabbb~";  // 使用双引号表示字符串
var strMsg2 = 'aaabbb~';    // 使用单引号表示字符串
// 常见错误
var strMsg3 = aaabbb;       // 报错,没使用引号,会被认为是js代码,但js没有这些语法
  • 字符串引号嵌套

    • JS 可以用单引号嵌套双引号 ,或者用双引号嵌套单引号 (外双内单,外单内双)

var str1 = 'aa"bb"cc';   // 可以用''包含""
var str2 = "aa'bb'cc";  // 也可以用"" 包含''
var str3 = 'acb?"; // 报错,不能 单双引号搭配
  • 案例:11.字符串型.html

  • 案例:12.字符串拼接.html

  • 布尔型Boolean

    • 布尔类型有两个值:true 和 false

    • 布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0。

    console.log(true + 1);  // 2
    console.log(false + 1); // 1
    • 案例:13.布尔型Boolean.html

  • Undefined和 Null

    • 声明后没有被赋值的变量会有一个默认值undefined

    var variable;
    console.log(variable);           // undefined
    console.log('xx' + variable);  // xxundefined
    console.log(11 + variable);     // NaN
    console.log(true + variable);   //  NaN
    
    var name = null;
    console.log(name);  //null是一个值
    Null这个类型的唯一的值就是null
8.3 获取变量数据类型
  • 检测变量的数据类型

    • typeof 可用来获取检测变量的数据类型

  • 案例:14.获取变量数据类型.html

8.4 数据类型转换
  • 其它类型转换为字符串(重点)

    • 案例:15.数字类型转换为字符型.html

  • 字符串转换为Number(重点)

    • 案例:16.其它类型转换为Number.html

    • 案例:17.类型转换案例1.html

    • 案例:18.类型转换案例2.html

    • parseInt 和 parseFloat是重点

  • 转换为布尔型

    console.log(Boolean('')); // false
    console.log(Boolean(0)); // false
    console.log(Boolean(NaN)); // false
    console.log(Boolean(null)); // false
    console.log(Boolean(undefined)); // false
    console.log(Boolean('小白')); // true
    console.log(Boolean(12)); // true
  • 案例:19.其它类型转换为布尔型.html

9. 解释型语言和编译型语言的区别(了解)

  • 翻译器翻译的方式有两种:一个是编译,另外一个是解释。两种方式之间的区别在于翻译的时间点不同

  • 编译器是在代码执行之前进行编译,生成中间代码文件

  • 解释器是在运行时进行及时解释,并立即执行(当编译器以解释方式运行的时候,也称之为解释器)

10. 关键字和保留字(掌握)

10.1 关键字
  • 关键字:指JS本身已经使用过的单词,不能再用它们当做变量名、方法名。

    • 错误的:var if = 123;

    • 自定义变量名称,方法名称等要避免使用。

break、case、catch、continue、default、delete、do、else、finally、for、
function、if、in、instanceof、new、return、switch、this、throw、try、
typeof、var、void、while、with 等。
10.2 保留字
  • 保留字:实际上就是预留的“关键字”,意思是现在虽然还不是关键字,但是未来可能会成为关键字,同样不能使用它们当变量名或方法名。

    • 自定义变量名称,方法名称等要避免使用。

boolean、byte、char、class、const、debugger、double、enum、export、extends、
fimal、float、goto、implements、import、int、interface、long、mative、
package、private、protected、public、short、static、super、synchronized、
throws、transient、volatile 等。

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

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

相关文章

vue打包内存问题解决办法<--- Last few GCs ---><--- JS stacktrace --->

**<— Last few GCs —> [18484:0000026763669610] 106760 ms: Mark-sweep 4016.0 <— JS stacktrace —> FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory** 解决办法&#xff1a; set NODE_OPTION…

PaddleOCR Docker 容器快捷调用,快捷调用OCR API

文章目录 搞环境命令行测试Python调用测试转fastapi服务打包成镜像服务快速启动paddleOCR paddleOCR迎来大更新&#xff0c;搞一把新的api接口&#xff0c;直接用起来。 搞环境 搞容器&#xff1a; FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 ENV DEBIAN_FRONTENDno…

CUDA 学习记录2

1.是否启用一级缓存有什么影响&#xff1a; 启用一级缓存&#xff08;缓存加载操作经过一级缓存&#xff09;&#xff1a;一次内存十五操作以128字节的粒度进行。 不启用一级缓存&#xff08;没有缓存的加载不经过一级缓存&#xff09;&#xff1a;在内存段的粒度上&#xff…

条款6:若不想使用编译器自动生成的函数,就该明确拒绝

有些场景我们不需要编译器默认实现的构造函数&#xff0c;拷贝构造函数&#xff0c;赋值函数&#xff0c;这时候我们应该明确的告诉编译器&#xff0c;我们不需要&#xff0c;一个可行的方法是将拷贝构造函数和赋值函数声明为private。 class HomeForSale { ... }; HomeForSal…

故障排查:shell脚本输出乱码

博客主页&#xff1a;https://tomcat.blog.csdn.net 博主昵称&#xff1a;农民工老王 主要领域&#xff1a;Java、Linux、K8S 期待大家的关注&#x1f496;点赞&#x1f44d;收藏⭐留言&#x1f4ac; 目录 故障详情故障原因解决方法iconv命令介绍 故障详情 最近的工作中遇到一…

Python Opencv实践 - 手势音量控制

本文基于前面的手部跟踪功能做一个手势音量控制功能&#xff0c;代码用到了前面手部跟踪封装的HandDetector.这篇文章在这里&#xff1a; Python Opencv实践 - 手部跟踪-CSDN博客文章浏览阅读626次&#xff0c;点赞11次&#xff0c;收藏7次。使用mediapipe库做手部的实时跟踪&…

Linux静态ip

Linux静态ip Ⅰ、修改静态ip Ⅰ、修改静态ip 修改静态ip必须是root用户 su root //切换root用户 ip a //查看修改前的动态ipvi /etc/sysconfig/network-scripts/ifcfg-ens33 //打开网卡配置文件&#xff0c;修改一处&#xff0c;新增四处 BOOTPROTO&quo…

[Realtek sdk-3.4.14b]RTL8197FH-VG+RTL8812F WiFi使用功率限制功能使用说明

sdk说明 ** Gateway/AP firmware v3.4.14b – Aug 26, 2019**  Wireless LAN driver changes as:  Refine WiFi Stability and Performance  Add 8812F MU-MIMO  Add 97G/8812F multiple mac-clone  Add 97G 2T3R antenna diversity  Fix 97G/8812F/8814B MP issu…

智能优化算法应用:基于人工水母算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于人工水母算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于人工水母算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工水母算法4.实验参数设定5.算法结果6.…

MongoDB的原子操作findAndModify和findOneAndUpdate

本文主要介绍MongoDB的原子操作findAndModify和findOneAndUpdate。 目录 MongoDB的原子操作一、findAndModify二、findOneAndUpdate MongoDB的原子操作 MongoDB的原子操作指的是在单个操作中对数据库的数据进行读取和修改&#xff0c;并确保操作是原子的&#xff0c;即要么完全…

轮滑加盟培训机构管理系统源码开发方案

一、项目背景与目标 &#xff08;一&#xff09;项目背景 随着轮滑运动的普及和市场需求的增加&#xff0c;轮滑加盟培训机构逐渐兴起。这些机构面临着学员管理、课程排班、教师管理等多方面的挑战。为了提高管理效率和服务质量&#xff0c;需要开发一套专门针对轮滑加盟培训…

[总线仲裁]

目录 一. 集中仲裁方式1.1 链式查询方式1.2 计数器查询方式1.3 独立请求方式 二. 分布式仲裁方式 总线仲裁是为了解决多个设备争用总线这个问题 \quad 一. 集中仲裁方式 \quad 集中仲裁方式: 就像是霸道总裁来决定谁先获得总线控制权 分布仲裁方式: 商量着谁先获得总线控制权 …

SQL学习笔记+MySQL+SQLyog工具教程

文章目录 1、前言2、SQL基本语言及其操作2.1、CREATE TABLE – 创建表2.2、DROP TABLE – 删除表2.3、INSERT – 插入数据2.4、SELECT – 查询数据2.5、SELECTDISTINCT – 去除重复值后查询数据2.6、SELECTWHERE – 条件过滤2.7、AND & OR – 运算符2.8、ORDER BY – 排序2…

Linux:终端定时自动注销

这样防止了&#xff0c;当我们临时离开电脑这个空隙&#xff0c;被坏蛋给趁虚而入 定几十秒或者分钟&#xff0c;如果这个时间段没有输入东西那么就会自动退出 全局生效 这个系统中的所有用户生效 vim /etc/profile在末尾加入TMOUT10 TMOUT10 这个就是10 秒&#xff0c;按…

Panoply查看nc文件的时间维

打开的是全球灌溉农田灌溉用水量遥感估算数据集&#xff08;2011-2018&#xff09;&#xff0c;该文件以nc格式储存。nc格式文件就是一个多维的数据库。经纬度占了两维&#xff0c;可能还有时间维度&#xff0c;就是时空谱。 双击打开刚打开时只能看到2018年1月的灌溉数据 打…

用23种设计模式打造一个cocos creator的游戏框架----(二十二)原型模式

1、模式标准 模式名称&#xff1a;原型模式 模式分类&#xff1a;创建型 模式意图&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过复制这些原型创建新的对象 结构图&#xff1a; 适用于&#xff1a; 1、当一个系统应该独立于它的产品创建、构成和表示时 2、…

Kubernetes 架构原则和对象设计

什么是 Kubernetes Kubernetes 是谷歌开源的容器集群管理系统 • 基于容器的应用部署、维护和滚动升级&#xff1b; • 负载均衡和服务发现&#xff1b; • 跨机器和跨地区的集群调度&#xff1b; • 自动伸缩&#xff1b; • 无状态服务和有状态服务&#xff1b; • 插件机制…

实验:使用ADC读取烟雾传感器的值

CubeMX 配置 3.3/4096 * smoke_value 这个表达式的含义是将ADC的原始数值 smoke_valuesmoke_value 转换成相应的电压值&#xff0c;假设ADC的范围是0到4095&#xff0c;电源电压是3.3V。这是一个将ADC的数字值映射到实际电压值的线性转换。 具体来说&#xff1a; 3.33.3 是电…

广东建筑模板价格一览表

在建筑行业&#xff0c;合适的建筑模板是确保工程顺利进行的关键材料之一。在选择建筑模板时&#xff0c;除了质量、材质等因素外&#xff0c;价格也是一个重要的考虑因素。本文将提供一个广东建筑模板的价格一览表&#xff0c;以供业内人士参考。需要注意的是&#xff0c;以下…

C++ Qt开发:QItemDelegate自定义代理组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍QStyledItemDelegate自定义代理组件的常用方法…