【Javascript】变量和数据类型

目录

1.JavaScript介绍

内部JavaScript 

外部JavaScript 

内联JavaScript 

JavaScript输入输出语法

2.变量

2.1定义变量

2.2变量的命名规则和规范 

2.3let和var区别 

3.数据类型

3.1数字类型 

3.2 字符串类型

3.3 布尔类型(boolean)

3.4 未定义数据类型

3.4检测数据类型

4.类型转换

 4.1隐式转换

4.2显式转换


1.JavaScript介绍

JavaScript是一种运行在客户端(浏览器)的编程语言,实现人机交互

作用:

  • 网页特效(监听用户的一些行为让网页做出对应的反馈)
  • 表单验证(针对表单数据的合法性进行判断)
  • 数据交互(获取后台的数据,渲染到前端)
  • 服务端编程(node.js)

JavaScript组成:

  • ECMAScript:规定了js基础语法核心知识,JavaScript语言基础
  • web APIs:DOM(文档对象模型)和 BOM(浏览器对象模型)

📖Note:

  • DOM:操作文档,比如对页面元素进行移动,添加删除等操作
  • BOM:操作浏览器,比如页面弹窗,检测窗口宽度,存储数据到浏览器等

参考网站:JavaScript | MDN (mozilla.org)

如何向页面添加JavaScript?

  • 内联JavaScript
  • 内部JavaScript
  • 外部JavaScript

内部JavaScript 

直接写在html文件里,用script标签包住

规范:script标签写在body标签内的末尾

alert('你好,js')页面弹出警告对话框

外部JavaScript 

外部引入时,script标签内不能再书写代码,不生效

内联JavaScript 

代码写在标签内部,vue框架会使用这种模式

JavaScript结束符:

  • 英文分号;代表语句结束
  • 可写可不写,换行符(回车)会被识别成结束符

JavaScript输入输出语法

输入输出也可以理解为人和计算机的交互,用户通过键盘,鼠标等向计算机输入信息,计算机处理后再展示结果给用户,这便是一次输入和输出的过程

输出语法:

🔷document.write('要输出的内容')

  • 向body内输出内容
  • 如果输出的内容写的是标签,也会被解析成网页元素

🔷alert('要输出的内容')

  • 页面弹出警告对话框

🔷console.log('控制台打印')

  • 控制台输出语法,程序员调试使用

输入语法:

prompt('要输出的语句')

字面量:在计算机中描述事/物

比如:数字字面量,字符串字面量,数组字面量[],对象字面量{} 

2.变量

2.1定义变量

变量:计算机中存储数据的“容器”,可以使计算机有记忆

📖Note:

  • 变量不是数据本身,它仅仅是一个用于存储数值的容器

1.声明变量:要想使用变量,首先需要创建变量

  • 语法:let 变量名
  • 声明变量由两部分构成:声明关键字,变量名(标识符)
  • let即关键字,是系统提供的专门用来声明(定义变量的词语)

2.变量赋值:定义了一个变量后,就能进行初始化

📖Note:

  • 可以同时声明多个变量

浏览器中弹出对话框:请输入姓名 用户输入之后页面中显示输入的姓名

  1. 输入:用户输入框
  2. 内部处理:保存数据
  3. 输出:页面打印

案例:交换两个变量的值,num1 = 10,num2 = 20 交换后 num1 = 20,num2 = 10

使用一个临时变量做中间存储

变量的本质:

  • 内存:计算机中存储数据的地方,相当于一个空间
  • 变量:是程序在内存中申请的一块用来存放数据的小空间

2.2变量的命名规则和规范 

规则:

  • 变量名不能为关键字:如let,var,if,for等
  • 只能为下划线,字母,数字,$组成,且数字不能开头
  • 字母严格区分大小写,如A和a是两个不同的变量名

规范:

  • 起名要有意义
  • 遵守小驼峰命名法:第一个单词首字母小写,后面每个单词首字母大写,如userName

2.3let和var区别 

var声明:

  • 可以先使用再声明(不合理)
  • var声明过的变量可以重复声明(不合理)
  • 变量提升,全局变量,没有块级作用域等

let解决了var的上述问题,以后声明变量统一使用let

按顺序存储多个变量===>数组

  • 每个数据都有自己的编号,计算机中的编号从0开始,数据的编号也叫索引或下标
  • 取值:数组名[下标]

3.数据类型

JS数据类型整体分为两大类:

  1. 基本数据类型:number(数字型),string(字符串型),boolean(布尔型),undefined(未定义类型),null(空类型)
  2. 引用数据类型:object(对象),function(函数),array(数组)

3.1数字类型 

数字类型:JS中的正数,负数,小数等统一称为数字类型

📖Note:

  • JS是弱数据类型,变量到底是属于哪种类型,只有赋值后才能确定
  • Java或C/C++是强数据类型,例如:int a = 3 必须是整数

3.2 字符串类型

字符串类型

通过单引号(' ')、双引号(" ")、反引号(· ·)包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号

📖Note:

  • 无论单引号或双引号都必须成对使用
  • 单引号/双引号可以互相嵌套,但是不可以自己嵌套自己(会就近匹配)外双内单,外单内双
  • 必要时可以使用转义字符'\',输出单引号或双引号

字符串拼接: 

字符串和变量的拼接

模板字符串:拼接字符串和变量

  • 符号:··(键盘Tab上方的按键)
  • 内容拼接变量时,用${}包裹变量

3.3 布尔类型(boolean)

布尔类型(boolean):表示肯定或否定时在计算机中对应的是布尔类型数据

它有两个固定的值true和false,表示肯定的数据用true(真),表示否定的数据用false(假)

3.4 未定义数据类型

未定义数据类型:只有一个值undefined

什么情况下出现未定义类型

只声明变量,不赋值的情况下,变量的默认值为undefined,

使用场景:

开发中经常声明一个变量,等待传送过来的数据。如果我们不知道这个数据是否已经传送过来,此时我们可以通过检测这个变量是不是undefined,就可以判断是否已经传送过来

null和undefined

null 表示值为空

null和undefined区别:

  • undefined表示没有赋值
  • null表示赋值了,但是内容为空

null 开发中的使用场景:

把null作为尚未创建的对象

3.4检测数据类型

1.控制台输出语句

2.通过typeof关键字检测数据类型

console.log(typeof num + '11')

先计算typeof num为'number',再执行'number' + '11' = number11

console.log(typeof (num + '11'))

先计算括号里边的num + '11' = '1011'  再执行typeof('1011') = string

console.log(typeof num + +'11')

先计算typeof num为'number',+'11'被转换为数字类型变量11,再执行'number' + 11 = number11

4.类型转换

为什么要类型转换?

JS是弱数据类型,变量只有在赋值后才能知道它属于哪种数据类型

使用表单,prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,需要把一种数据类型转换成我们需要的数据类型

 4.1隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换

规则:

  • +号两边只要有一个是字符串,都会把另外一个转成字符串
  • 除了+以外的算术运算符,比如- * /等都会把数据转成数字类型

缺点:转换类型不明确

📖Tips:

  • +号作为正号解析可以转换成Number

4.2显式转换

隐式转换的规律并不清晰,为了避免隐式转换带来的问题,通常需要对数据进行显式转换

语法:

1️⃣转换成数字类型Number(数据)

  • 如果字符串内容中有非数字,转换失败时结果为NaN(Not a Number)即不是一个数字
  • NaN也是number类型的数据,代表非数字

parseInt(数据)只保留整数

parseFloat(数据)可以保留小数

parseFloat(数据)和Number(数据)区别:

parseFloat(数据)可以过滤字符串中的非数字,用来过滤单位

2️⃣转换成字符型

  • String(数据)
  • toString(数据)

案例:打印订单信息表格

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        * {
            margin: 0;
            padding: 0;
        }

        table {
            margin: 0 auto;
            text-align: center;
            border-collapse: collapse;
        }

        table th,
        td {
            border: 1px solid #000;
            padding: 15px;
        }

        table caption {
            margin: 15px 0;
        }
    </style>
</head>
<body>
    
    <script>
        let name = prompt('请输入商品名称:')
        let price = +prompt('请输入商品单价:')
        let num = +prompt('请输入商品数量:')
        let adress = prompt('请输入收货地址:')

        let total = price * num

        document.write(`
        <table>
            <caption>
                <h2>用户订单信息</h2>
            </caption>

            <tr>
                <th>商品名称</th>
                <th>商品单价</th>
                <th>商品数量</th>
                <th>总价</th>
                <th>收货地址</th>
            </tr>

            <tr>
                <td>${name}</td>
                <td>${price}</td>
                <td>${num}</td>
                <td>${total}</td>
                <td>${adress}</td>
            </tr>
        </table>
        `)

    </script>
</body>
</html>

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

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

相关文章

Docker入门一(Docker介绍、Docker整体结构、Docker安装、镜像、容器、Docker的容器与镜像)

文章目录 一、Docker介绍1.什么是虚拟化2.虚拟化模块3.docker是什么4.docker平台介绍5.为什么使用docker6.docker主要解决的问题 二、docker整体结构1.Docker引擎介绍&#xff08;Docker Engine&#xff09;2.Docker结构概览介绍3.Docker底层技术 三、docker安装1.Docker-CE和D…

【CesiumJS-5】绘制动态路线实现飞行航线、汽车轨迹、路径漫游等

实现效果 前言 Cesium中&#xff0c;动态路线绘制的核心是借助CZML格式&#xff0c;CZML是一种用来描述动态场景的JSON数组,可以用来描述点、线、多边形、体、模型及其他图元,同时定义它们是怎样随时间变化的&#xff1b; CZML主要做三件事&#xff1a; 1.添加模型信息 2.添加…

热流道融合3D打印技术正在成为模具制造新利器

在模具领域中&#xff0c;3D打印技术与热流道技术联手&#xff0c;能迸发出更耀眼的光芒。两种技术虽然各有特点&#xff0c;但两者结合将形成互补作用&#xff0c;从而实现11&#xff1e;2”的跨越式提升。 将增材制造的灵活思维融入传统模具设计时&#xff0c;不仅能够突破传…

ubuntu下docker安装

目录 官网链接 安装步骤 docker使用方法 拉取镜像 创建镜像 运行镜像 查看运行结果 保存镜像文件 传输到windows下 官网链接 Install Docker Engine on Ubuntu | Docker Docs 安装步骤 1.运行以下命令卸载所有冲突的包&#xff1a; for pkg in docker.io docker-d…

jeecg 启动 微服务 更改配置本地host地址

127.0.0.1 jeecg-boot-redis 127.0.0.1 jeecg-boot-mysql 127.0.0.1 jeecg-boot-nacos 127.0.0.1 jeecg-boot-gateway 127.0.0.1 jeecg-boot-system 127.0.0.1 jeecg-boot-sentinel 127.0.0.1 jeecg-boot-xxljob 127.0.0.1 jeecg-boot-rabbitmq1. windows系统下&#xff0c;在开…

JAVA实战开源项目:车险自助理赔系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 车辆档案模块2.4 车辆理赔模块2.5 理赔照片模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 车辆表3.2.3 理赔表3.2.4 理赔照片表 四、系统展示五、核心代码5.1 查询车…

网站搭建教程

网站搭建教程 一.领取一个免费域名和SSL证书&#xff0c;和CDN 1.打开网站链接&#xff1a;https://www.rainyun.com/ycpcp_ 首先创建一个CDN&#xff0c;这里以我加速域名“cdntest.biliwind.com 1”为例 这里就要填写 cdntest.biliwind.com 1 &#xff0c;而不是 https:/…

Linux学习笔记:什么是文件描述符

什么是文件描述符 C语言的文件接口文件的系统调用什么是文件描述符,文件描述符为什么是int类型?为什么新打开的文件的文件描述符不是从0开始? 文件描述符 fd (file descriptor) C语言的文件接口 当时学习C语言的时候,学习了文件接口 具体可以查看之前的文章: 链接:C语言的文…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Select)

提供下拉选择菜单&#xff0c;可以让用户在多个选项之间选择。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Select(options: Array<SelectOption>) 参数&#xff1a;…

Autosar教程-Mcal教程-Fls配置教程

3.11.1 FLS基础知识 flash操作中有两个术语:block和page。block是flash最小的擦除单位,page则是flash写入的最小单位。以我们使用的F1KM-S4(R7F7016533)来说,它的是64 bytes, page是4bytes。这也就意味着,如果要擦除的话,最小要擦除64 bytes,但是写入可以按4字节的大小写入…

SketchUp Pro 2023 for Mac/Win:重塑设计,引领未来

在数字化浪潮席卷全球的今天&#xff0c;设计行业也迎来了前所未有的变革。SketchUp Pro 2023&#xff0c;这款专为设计师打造的草图大师软件&#xff0c;正以其强大的功能和卓越的性能&#xff0c;引领着设计界的新潮流。 SketchUp Pro 2023不仅继承了前代产品的优秀基因&…

【Java设计模式】二十三、解释器模式

文章目录 1、解释器模式2、案例 1、解释器模式 计算一个表达式的值&#xff0c;比如12-34-7&#xff0c;单纯的定义方法或函数很难适配所有&#xff0c;因为数值和运算符可以有无数种组合。 //用于n个整数相加 public static int add(Integer ... arr) {int sum 0;for (Inte…

网络学习:BGP路径属性分类

目录 前言&#xff1a; 路径属性分类 公认必遵 公认任意 可选过渡 可选非过渡 前言&#xff1a; 在默认情况下&#xff0c;到达同一目的地&#xff0c;BGP只走单条路径&#xff0c;并不会在多条路径之间执行负载均衡。对于IGP路由协议&#xff0c;当有多条路径可以到达同…

腐烂的橘子 力扣bfs

BFS用来搜索最短路径的解法是比较合适的。 比如求最少步数的解&#xff0c;最少交换次数的解&#xff0c;最快走出迷宫等等&#xff0c;因为bfs搜索过程中遇到的第一个解一定是离最初位置最近的&#xff0c;所以遇到第一个解&#xff0c;一定就是最优解&#xff0c;此时搜索算…

表单修饰符和事件修饰符

表单修饰符和事件修饰符 表单修饰符 v-model.lazy v-model.lazy 失去焦点后再收集数据 <div id"app"><textarea name"" id"" cols"30" rows"10" v-model.lazy"a"></textarea>{{a}}<textar…

水果音乐编曲和制作软件 FL Studio 中文汉化破解版下载 FL Studio 中文设置教程

FL Studio 21 也就是 Image-Line 出品的一款功能强大的编曲软件&#xff0c;全名 Fruity Loops Studio 简称“FL Studio”。 FL Studio 21.2汉化破解版是功能强大的音乐制作解决方案&#xff0c;使用旨在为用户提供一个友好完整的音乐创建环境&#xff0c;让您能够轻松创建、管…

【ansible】ansible的介绍和安装

前言运维自动化 云计算核心职能 搭建平台架构 日常运营保障 性能效率优化 相关工具 代码管理&#xff08;SCM&#xff09;&#xff1a;GitHub、GitLab、BitBucket、SubVersion 构建工具&#xff1a;maven、Ant、Gradle 自动部署&#xff1a;Capistrano、CodeDeploy 持续…

JVM-5

1.选择垃圾收集器 如果你的堆大小不是很大&#xff08;比如 100MB &#xff09;&#xff0c;选择串行收集器一般是效率最高的。 参数&#xff1a; -XX:UseSerialGC 。如果你的应用运行在单核的机器上&#xff0c;或者你的虚拟机核数只有单核&#xff0c;选择串行收集器依然是合…

P6技巧:ORACLE Primavera P6 反馈项目Reflections的使用

前言 反馈是一个有趣的概念&#xff0c;就目前的了解而言&#xff0c;他是 Primavera P6 所独有的。 你可以将反馈视为项目的特殊假设副本。 然而&#xff0c;与直接拷贝副本不同的是&#xff0c;反馈保留了返回源项目的链接。 这意味着如果反馈发生更改&#xff0c;你可以将部…

Javascript 线性搜索算法

线性搜索被定义为一种顺序搜索算法&#xff0c;从一端开始&#xff0c;遍历列表中的每个元素&#xff0c;直到找到所需的元素&#xff0c;否则搜索将继续&#xff0c;直到数据集的末尾。 线性搜索算法 线性搜索算法如何工作&#xff1f; 在线性搜索算法中&#xff1a; …
最新文章