【ECMAScript笔记一】初识JavaScript、变量的使用、数据类型包括哪些?

文章目录

    • 1 初识JavaScript
      • 1.1 JS是什么
      • 1.2 JS的作用
      • 1.3 浏览器怎么执行JS
      • 1.4 编译性语言和解释型语言
      • 1.5 JS的组成
      • 1.6 JS的三种书写位置
      • 1.7 JS的注释
      • 1.8 JS的输入输出语句
    • 2 变量
      • 2.1 变量的使用
      • 2.2 使用变量的注意点
      • 2.3 变量命名规范
    • 3 数据类型
      • 3.1 简单数据类型
        • 3.1.1 数字型 `Number`
        • 3.1.2 字符串型 `String`
        • 3.1.3 布尔型 `Boolean`
        • 3.1.4 未定义 `Undefinied`
        • 3.1.5 空值 `Null`
      • 3.2 获取变量的数据类型 `typeof`
      • 3.3 数据类型转换
        • 3.3.1 转换为`字符串`
        • 3.3.2 转换为`数字`
        • 3.3.3 转换为`布尔`

1 初识JavaScript

1.1 JS是什么

  • JavaScript是一种运行在客户端(自己电脑上,有浏览器就够了。不需要远程服务器,安装运行环境)的脚本语言(Script:脚本)
  • 脚本语言∶不需要编译,运行过程中由JS解释器(JS引擎)逐行进行解释并执行
  • 现在也可以基于Node.js技术进行服务器端编程

所以,JS既可以做前台,也可以做后台!

1.2 JS的作用

  • 表单动态校验:密码强度检测,减轻服务器压力(JS产生最初的目的)
  • 网页特效:鼠标放上去有下拉菜单、切换广告条…
  • 服务端开发(Node.js)
  • 桌面程序(Electron):桌面日历…
  • App(Cordova):移动端开发…
  • 控制硬件-物联网(Ruff):JS控制硬件…
  • 游戏开发(cocos2d-js):微信小程序、结合html5开发…

1.3 浏览器怎么执行JS

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

  • 渲染引擎∶用来解析HTML与CSS,俗称内核。

    比如chrome浏览器的 blink,老版本的webkit

  • JS引擎:也称为JS解释器。用来逐行读取(翻译一句,执行一句)网页中的JavaScript代码,将高级编程语言转换为二进制的机器语言后,让计算机去执行。

    比如chrome浏览器的V8

1.4 编译性语言和解释型语言

计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言才能执行程序。程序语言翻译成机器语言的工具,被称为翻译器

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

  • 编译型语言(Java)

    读完100行代码后对其所有代码进行编译,全部编译完毕,转换为二进制后生成中间代码文件,再让计算机执行代码。

  • 解释型语言(JavaScript)

    读完第1行代码后,就直接转换为二进制让计算机执行,然后再将第2行转换为二进制,让计算机继续执行。

1.5 JS的组成

  • ECMAScript:JavaScript语法

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

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

  • DOM:页面文档对象模型(效果:鼠标指着某个元素会出现下拉菜单)

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

  • BOM:浏览器对象模型(效果:弹出对话框)

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

1.6 JS的三种书写位置

1、行内式(HTML文档行内书写):

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><input type="button" value="唐伯虎" onclick="alert('秋香姐')">
</body>
</html>

image-20231211211234149

点击唐伯虎这个按钮,就可以跳出一个窗口。

特点:可以将单行或者少量的JS代码写在HTML文档中,如:onclick。

注意单双引号的使用中:在HTML文档中我们推荐试验双引号,在JS中我们推荐使用单引号。

2、内嵌式(<head>的<script>内书写):

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>alert('秋香姐')</script>
</head>
<body></body>
</html>

3、外部:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="javascript.js"></script>   <!-- <script>中间不能写代码 -->
</head>
<body></body>
</html>

1.7 JS的注释

单行注释:ctrl + /

// 这是单行注释效果

多行注释: Shift + Alt + A(可在VS里修改,最好为ctrl + shift + /方便记忆)

/* 这是
多行注释效果*/ 

注意区别:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// JS单行注释效果/* JS多行注释效果 */</script><style>/* CSS单行和多行注释效果 */</style>
</head>
<body><!-- html单行和多行注释效果 -->
</body>
</html>

1.8 JS的输入输出语句

image-20231212094841704

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// 用户输入框 给用户输入的prompt('我是输入语句')// 弹出警示框 给用户看的alert("我是输出语句");// 控制台输出 给程序员看的console.log('我是程序员能看到的')</script>
</head>
<body></body>
</html>

2 变量

变量:程序在内存中申请的一块用来存放数据的空间。

2.1 变量的使用

变量在使用时分为两步:1.声明变量;2.赋值

var age;   // 声明一个类型为var,变量名为age的变量。
age=18;    // 可以对这个变量进行赋值
console.log(age);   // 输出结果
  • var是一个JS关键字,用来声明变量(variable是变量的意思)。使用该关键字声明变量后,计算机会自动为变量分配内存空间。
  • 通过变量名age,可以访问内存中分配的空间。

或者直接使用变量的初始化(声明 + 赋值):

var age=18;

声明多个变量:

var age = 10, name = 'zs', sex=2;

其他应用:

var myname = prompt("请输入你的名字")// 用户输入名字到myname中
alert(myname)  // 弹框输出展示用户名

2.2 使用变量的注意点

image-20231212141442452

2.3 变量命名规范

  • 变量由数字,字母,下划线(_),美元符号($)组成
  • 严格区分大小写
  • 不能以数字开头
  • 不能是关键词(JS已经使用了的字:for 、while、if、var、break…)、保留字(预留的关键字:let、boolean、byte、int、char、class…)、name
  • 变量名必须有意义,最好用英文单词
  • 遵循驼峰命名法:首字母小写,后面单词的首字母需要大写:myFirstName

备注:

  • 标识符:开发人员为变量、属性、函数、参数取的名字。

3 数据类型

在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。

JavaScript是一种**弱类型/动态语言**。所以不用提前声明变量的类型,在程序运行过程中,JS引擎会自动根据=右边变量值的数据类型来判断变量的数据类型。

  • 弱类型:没有int double之类的类型
var age=10;
  • 动态语言:相同的变量可以用作不同的类型
var x=6;
var x="pink"

注意:最后x值为pink

JS把数据类型分为两类:

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

  • 复杂数据类型(object)

3.1 简单数据类型

image-20231212143936890

3.1.1 数字型 Number

数字型包括整数,小数等。

  • JavaScript可以表示八进制07,十进制09,十六进制0~9 a~f

    表示八进制:在数字前面加一个0:如010 = 8

    表示十六进制:在数字前面加一个0x:如0xa = 10

  • 数字型的最大值:Number.MAX_VALUE;数字型的最小值:Number.MIN_VALUE

  • 无穷大:Infinity;无穷小:-Infinity

  • 非数字:NaN,表示not a number,如:”pink“ - 200 = NaN

  • 使用isNaN()判断是否为非数字

    1. isNaN(30) = fasle
    2. isNaN(“pink”) = true
3.1.2 字符串型 String
  • 字符串型可以使用单引号(更推荐)或者双引号表示。

    都使用时,注意外双内单,或者外单内双。

  • 字符串转义符:

image-20231212151027156

  • 获取字符串的长度: 变量.length
var myname = "啊飒飒的好看";
console.log(myname.length);  // 使用.length来获取到字符串的长度,输出为6
  • 字符串的拼接: +
console.log("沙漠" + "骆驼")  // 沙漠骆驼
console.log("pink" + 18)    // pink18
console.log("pink" + true)  // pinktrue
console.log(12 + 12)   // 24
var age = prompt("请输入您的年龄');
var str ='您今年已经' + age + '岁了';
alert(str);
3.1.3 布尔型 Boolean

bool类型只包括两个数据:truefalse

  • true=1;false=0

  • 所有bool类型可以参与加法运算

true + 1 = 2
3.1.4 未定义 Undefinied

声明一个变量但未赋值,那么这个这个变量为undefenied

undefinied + 1 = NaN
undefinied + 'pink' = undefiniedpink
3.1.5 空值 Null
null + 1 = 1
null + 'pink' = nullpink

3.2 获取变量的数据类型 typeof

var num = 10;
console.log(typeof num);   // number
var timer = null;
console.log(typeof timer);    // object (null比较特殊)
var age=prompt("请输入你的年龄")
console.log(typeof age)    // string,因此需要做数据类型转换

3.3 数据类型转换

image-20231212161538926

3.3.1 转换为字符串
  • 变量.toString()
var num=1;
num.toString();
  • String(变量) 强制转换 → 这种方法()被称为函数
var num=1;
String(num);
  • + 与字符串拼接(隐式转换)
var num=1;
""+num

加一个空的字符串就可以将其转换为字符串。

3.3.2 转换为数字

在这里插入图片描述

  • parseInt(string)函数:字符串→整数

    parseInt('3.14')    // 3
    parseInt('3.94')    // 3
    parseInt('120px')    // 120,会自动把px去掉
    parseInt("大数据11")    // NaN,换不了(只能识别数字,开头不是数字就报NaN)
    
  • parseFloat(string)函数

    parseFloat('3.14')    // 3.14
    parseFloat('120px')    // 120,会自动把px去掉
    parseFloat("大数据11")    // NaN,换不了
    
  • Number(变量)

    var num="123"
    Number(num)   // 123
    
  • -*/算数运算

    '12' - 0     // 12
    '12' - '2'   // 10
    '123' * 1    // 123
    
3.3.3 转换为布尔

Boolean()

  • “”、0、NaN、null、undefined → false
  • 除此之外 → true
<script>console.log(Boolean(""));     // falseconsole.log(Boolean(0));      // falseconsole.log(Boolean(NaN));    // falseconsole.log(Boolean(null));    // falseconsole.log(Boolean(undefined));  // falseconsole.log(Boolean(23));       // trueconsole.log(Boolean("副书记哦"));   // true
</script>

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

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

相关文章

6.s081操作系统Lab4: trap

文章目录 chapter 4概览4.1 CPU trap流程使用寄存器如果cpu想处理1个trap 4.2 用户态引发的trap4.2.1 uservec4.2.2 usertrap4.2.3 usertrapret和userretusertrapretuserret Lab4Backtrace (moderate)Alarm (hard) chapter 4 概览 trap的场景&#xff1a;系统调用&#xff0c…

2024年手把手教CleanMyMac X v4.14.6破解版安装激活图文教程

小编给您带来CleanMyMac X v4.14.6中文破解版&#xff0c;CleanMyMac X破解版是应用在MacOS上的一款Mac系统清理优化工具&#xff0c;使用cleanmymac x 中文破解版只需两个简单步骤就可以把系统里那些乱七八糟的无用文件统统清理掉&#xff0c;节省宝贵的磁盘空间。 CleanMyMac…

redis各种数据类型的应用场景

String应用场景 单值缓存 SET key value GET key 对象缓存 SET user:1 value(json格式数据)MSET user:1:name zhuge user:1:balance 1888 MGET user:1:name user:1:balance 分布式锁 SETNX product:10001 true //返回1代表获取锁成功 …

使用案例总结Vlookup函数的30种用法

1 基础用法 =VLOOKUP(A12,B$1:D$8,3,0) 2 批量查找 =VLOOKUP(A11:A13,A2:C8,3,0) 3 模糊查找 =VLOOKUP("*"&D2&"*",A:B,2,0) 4 模糊查找2 =VLOOKUP(D10&"??",A:B,2,0) 5 模糊查找3 =

pycharm通过ssh连接远程服务器的docker容器进行运行和调试代码

pycharm连接远程服务器的docker容器通常有两种方法&#xff1a; 第一种&#xff1a;pycharm通过ssh连接已在运行中的docker容器 第二种&#xff1a;pycharm连接docker镜像&#xff0c;pycharm运行代码再自动创建容器 第一种方法比较通用简单&#xff0c;作者比较推崇。 条件…

特氟龙材质PFA、FEP、PTFE三种氟塑料试剂瓶区别

PFA、FEP、PTFE三种材质&#xff0c;都具有良好的耐化学性和耐热性。适合用于微量分析&#xff0c;痕量分析&#xff0c;超痕量分析ICP-MS/OES/AAS分析等实验。PFA、FEP、PTFE是三种常见的氟塑料材料&#xff0c;它们在石油化工、机械、半导体电子等领域得到广泛应用。虽然它们…

展示一段比较简单的人工智能自动做模型的程序

人工智能是一种模拟或模仿人类智能的技术。它通过使计算机系统具有一定的认知能力和学习能力&#xff0c;使其能够自动完成一系列复杂的任务。人工智能可以在各个领域应用&#xff0c;包括图像识别、语音识别、自然语言处理、机器学习等。人工智能还可以用于解决各种问题&#…

Docker 的基本概念、优势、及在程序开发中的应用

Docker 是一种容器化平台,它通过使用容器化技术,将应用程序及其依赖性打包到一个独立的、可移植的容器中,从而实现应用程序的快速部署、可靠性和可扩展性。 下面是 Docker 的一些基本概念和优势: 容器:Docker 使用容器化技术,将应用程序及其依赖性打包到一个可移植的容器…

CUDA C:线程、线程块与线程格

相关阅读 CUDA Chttps://blog.csdn.net/weixin_45791458/category_12530616.html?spm1001.2014.3001.5482 第一百篇博客&#xff0c;写点不一样的。 当核函数在主机端被调用时&#xff0c;它会被转移到设备端执行&#xff0c;此时设备会根据核函数的调用格式产生对应的线程(…

docker在线安装minio

1、下载最新minio docker pull minio/minio 2、在宿主机创建 /usr/local/data/miniodocker/config 和 /usr/local/data/miniodocker/data,执行docker命令 docker run -p 9000:9000 -p 9090:9090 --name minio -d --restartalways -e MINIO_ACCESS_KEYminio -e MINIO_SECRET_K…

力扣225. 用队列实现栈【附进阶版】

文章目录 力扣225. 用队列实现栈示例思路及其实现两个队列模拟栈一个队列模拟栈 力扣225. 用队列实现栈 示例 思路及其实现 两个队列模拟栈 队列是先进先出的规则&#xff0c;把一个队列中的数据导入另一个队列中&#xff0c;数据的顺序并没有变&#xff0c;并没有变成先进后…

引领半导体划片机行业,实现钛酸锶基片切割的卓越效能

在当今快速发展的半导体行业中&#xff0c;博捷芯以其卓越的技术实力和精准的行业应用&#xff0c;脱颖而出&#xff0c;再次引领行业潮流。这次&#xff0c;他们将先进的BJX3356划片机技术应用于钛酸锶基片的切割&#xff0c;为半导体制造行业的进一步发展提供了强大的技术支持…

基于知识库的接口自动化测试——结果模型化方法与装置的分析

一、背景 随着自动化测试的设计理念不断完善、新的技术不断应用&#xff0c;自动化测试资产的积累代价和维护成本不断降低&#xff0c;自动化测试资产的数量持续增长。同时&#xff0c;随着DevOps的普及&#xff0c;应用研发过程越来越敏捷&#xff0c;自动化测试能力逐步从测…

js输入框部分内容不可编辑,其余正常输入,el-input和el-select输入框和多个下拉框联动后的内容不可修改

<tr>//格式// required自定义指令<e-td :required"!read" label><span>地区&#xff1a;</span></e-td><td>//v-if"!read && this.data.nationCode 148"显示逻辑<divclass"table-cell-flex"sty…

camera曝光时间

曝光和传感器读数 相机上的图像采集过程由两个不同的部分组成。第一部分是曝光。曝光完成后&#xff0c;第二步就是从传感器的寄存器中读取数据并传输&#xff08;readout&#xff09;。 曝光&#xff1a;曝光是图像传感器进行感光的一个过程&#xff0c;相机曝光时间&#xf…

技术阅读周刊第十期

技术阅读周刊&#xff0c;每周更新。 周四加了个班&#xff0c;周五没缓过来&#xff0c;就推迟到今天更新了 历史更新 20231117&#xff1a;第六期20231124&#xff1a;第七期20231201&#xff1a;第八期20231215&#xff1a;第九期 Golang: 14 Shorthand Tricks You Might No…

LLMs 玩狼人杀:清华大学验证大模型参与复杂交流博弈游戏的能力

作者&#xff1a;彬彬 编辑&#xff1a;李宝珠&#xff0c;三羊 清华大学研究团队提出了一种用于交流游戏的框架&#xff0c;展示了大语言模型从经验中学习的能力&#xff0c;还发现大语言模型具有非预编程的策略行为&#xff0c;如信任、对抗、伪装和领导力。 近年来&#x…

设计模式——迭代器模式

引言 迭代器模式是一种行为设计模式&#xff0c; 让你能在不暴露集合底层表现形式 &#xff08;列表、 栈和树等&#xff09; 的情况下遍历集合中所有的元素。 问题 集合是编程中最常使用的数据类型之一。 尽管如此&#xff0c; 集合只是一组对象的容器而已。 大部分集合使用…

Spring 原理(一)

Spring 原理 它是一个全面的、企业应用开发一站式的解决方案&#xff0c;贯穿表现层、业务层、持久层。但是 Spring仍然可以和其他的框架无缝整合。 Spring 特点 轻量级控制反转面向切面容器框架集合 Spring 核心组件 Spring 常用模块 Spring 主要包 Spring 常用注解 bean …

达索系统SOLIDWORKS 2024 云服务新功能

“云服务 是基于互联网的相关服务的增加、使用和交互模式&#xff0c;通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。 云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网&#xff0c;后来也用来表示互联网和底层基础设施的抽象。云服务指通过网络以…