JavaScript【一】JavaScript变量与数据类型

news2025/6/21 1:06:01

文章目录

  • 🌟前言
  • 🌟变量
    • 🌟 变量是什么?
    • 🌟 变量提升
    • 🌟 声明变量
    • 🌟 JavaScript有三种声明方式
    • 🌟 命名规范
    • 🌟 注意
  • 🌟数据类型以及运算
    • 🌟 检测变量数据类型的关键字:typeof
    • 🌟 运算符:
      • 🌟 算术运算符:
      • 🌟 减法(-)
      • 🌟 加减法做数字与字符串的转换
      • 🌟 乘法运算
      • 🌟 除法运算
      • 🌟 取余(%)
      • 🌟 求幂运算符
      • 🌟 关系(比较)运算符:
      • 🌟 赋值运算符:
      • 🌟 逻辑运算符:
      • 🌟 逻辑运算符的应用:短路原则
      • 🌟 一元运算符:
      • 🌟 特殊运算符:
      • 🌟 三元运算符:
  • 🌟写在最后

在这里插入图片描述

🌟前言

哈喽小伙伴们,本文将收录在JavaScript【前端童子功】这个专栏里;这个专栏里边会收录一些JavaScript的基础知识和项目实战;希望大家可以多多支持,你们的支持就是我创作的动力;让我们一起来看看吧🤘

🌟变量

🌟 变量是什么?

变量是储存数据的容器

🌟 变量提升

先访问后声明就叫做变量提升。

console.log(num);

var num=10

🌟 声明变量

  • var(ES5):声明变量
    • 在函数循环里,循环完成后会释放一个全局变量。
  • let(ES6):声明变量
    • 可以识别块级作用域
    • 不存在变量提升 ,造成暂时性死区 console.log(num); let num=10;
    • 不支持重复声明 let num=10; let num=20;
  • const(ES6):声明常量
    • 可以识别块级作用域
    • 不存在变量提升
    • 不支持重复声明
    • 声明的同时要赋值 const num=20

🌟 JavaScript有三种声明方式

关键词描述版本
var声明一个变量,可赋一个初始化值。ES5
let声明一个块作用域的局部变量,可赋一个初始化值。ES6
const声明一个块作用域的只读的命名常量。ES6
  1. 先声明,后赋值
var a;a=10;
  1. 声明的同时赋值
var a=10;
  1. 一次性先声明多个变量再赋值
var x,y,z;
x=10,y=20,z=30
  1. 一次性声明多个变量并且赋值
var x=10,y=20,z=30;

🌟 命名规范

  1. 区分大小写;
  2. 命名要有意义;
  3. 常见命名法:驼峰命名法;首字母大写法;
  4. 不能使用关键字和保留字命名;
  5. 数字,字母,_,$组成,不能以数字开头。

🌟 注意

  • 变量未声明,会报错;
  • 变量声明但未赋值,会有一个默认值:undehined
  • 变量值的更新:直接给变量赋一个新的值。
var a=10;
a=20;

🌟数据类型以及运算

按照数据在内存中的存储位置进行的分类。

初始数据类型:存放在栈区;引用数据类型:存放在堆区。

分类类型
初始类型undefinedundefined
null表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 null 与 Null、NULL或其他变量完全不同。
string双引号引起来的数据
number包括整型和浮点型。科学计数法。支持二进制、八进制、十进制、十六进制。
booleantrue/false
Symbol表示独一个一无二的值。(ES6新增)
引用类型Object包含相关属性和方法的一个集合。包含Function、Array、Object

🌟 检测变量数据类型的关键字:typeof

类型检测结果
undefinedundefined,变量声明未赋值undefined
nullnullobject
string单双引号引起来的内容string
number整数,浮点数,十进制,二进制,八进制,十六进制,科学计数法,最大值,最小值number
booleantrue,falseboolean
Symbol独一无二的值
Object数组(object),函数(function),对象(object)object,function,object
NaNnumber+undefinednumber

🌟 运算符:

🌟 算术运算符:

+ - * / % ** 幂运算 四则运算

  • null转换为0;
  • true转换为1;
  • false转换为0;
  • undefined 与任何数做运算都是NaN。

+

  • 加法:两个操作符都是number型做加法运算。
  • 拼接:只要一个操作符是字符串就做拼接。

++ 自增

  • ++var : ++在前,要先算++,在做其他运算。

var++ : ++在后,要先算其他,在做++运算。

-- 自减

  • --var: --在前,要先算--,在做其他运算。

  • var-- : --在后,要先算其他,在做--运算。

🌟 减法(-)

  1. 数字和字符串相减 :

    • 字符串全部由数字组成,将字符串转化为数字,再相减
    • 字符串不能转化为数字,结束是 NaN
    • null转化为0 undefined转化为NaN true为1 false为0
  2. 字符串和字符串相减 : 和数字和字符串相减规则相同

    '11a'-1    //NaN
    '11'-1     //10
    

🌟 加减法做数字与字符串的转换

  • 数字转化为字符串: num + ""
  • 字符串转化为数字: num - 0

🌟 乘法运算

  1. 数字与字符串运算:
    • 将字符串尝试着转化为数字,进行运算
    • 字符串不能转化为数字,结果是 NaN
  2. null转化为0 true为1 false为0 空字符串转为0
  3. Undefined乘所有数据类型的都为NaN
  4. 字符串和字符串运算 : 和数字和字符串运算规则相同
true*null      //0
'11'*'11'    // 121
'1a'*22    //NaN

🌟 除法运算

  1. 字符串类型 数字类型与 null 相除 结果为 Infinity
  2. 字符串类型、数字类型 null与 Undefined 相除 结果为 NaN
  3. 字符串类型 数字类型 null与 字符串类型、数字类型 null相除进行相应转换做除法运算
    • 字符串不能转为数字则结果为NaN
    • 空字符串转为0
11/null              //Infinity
'11'/'11'            // 1
'11a'/'11'            // NaN

🌟 取余(%)

取余,即取余数,如 10 % 3 则指 10除以3的余数

用于取一段范围的值
一般不用于小数,因为结果不确定(不精确)。

  1. Undefined 与所有数据类型的 取余 都为NaN

  2. 其余数据类型先进行转换,能转为数字则进行取余运算,否则为NaN

    ''%1        // 0
    11%0        // NaN
    11%null     // NaN
    

    判断数字num是否是偶数:

    if(num%2==0){
     alert(num + "是偶数")
    }
    

🌟 求幂运算符

x**y 取x的y次方,同Math.pow(x, y)

3 ** 2  //9
效果同
Math.pow(3, 2) //9

🌟 关系(比较)运算符:

关系运算符的运算结果为boolean。(true/false)

  • == 数值相等

    • 0!=null(true)
    • 0!=undefined(true)
    • undefined==null(true)
    • NaN==NaN(false)
  • === 数值相等,数据类型相同

  • > < >= <=

    • 两个操作数都是number型,按照数据大小进行比较。

    • 一个是number型,另一个是字符串,会先将字符串转换为数字型,能转换成功按照数字大小比较,转换不成功,返回false。

    • 任何数与NaN比较,返回的都是false。

    • 两个操作数都是字符串,按位按照ASCII码表进行比较。

🌟 赋值运算符:

=;+=;-=;*=;/=;%=;**=

var a=23;a+=5;  //a=28
运算符实例等价于
=a=25a=25
+=a+=25a=a+25
-=a-=25a=a-25
*=a*=25a=a*25
/=a/=25a=a/25
%=a%=25a=a%25
**=a**=3a=a^3

🌟 逻辑运算符:

在JavaScript逻辑运算中,0、“”、null、false、undefined、NaN都会判为false,其他都为true。

  1. 与:希望得到一个假值

    &&
    
    • 只要有一个是假,结果就是假
    • &&左侧是真,结果取右侧; 左侧假,结果取左侧值
    • 两侧都为真时,返回右侧
  2. 或:希望得到一个真值

    ||
    
    • 只要有一个是真,结果就是真
    • ||左侧是真,结果取左侧; 左侧假,结果取右侧值
    • 两侧都为假时,返回右侧
  3. !
    
    • 取反
    • 结果是boolean

总结: 与或运算,哪一侧能决定表达式真假性,则结果取哪一侧,结果不转换。

🌟 逻辑运算符的应用:短路原则

与或运算左侧结果已经确定整个表达式真假性,则右侧不再计算

  • &&与运算:左侧是假,右侧不进行计算
  • ||或运算:左侧是真,右侧不进行计算

🌟 一元运算符:

只能操作一个操作符的运算符叫做一元运算符。

  • typeof
  • new
  • delete
  • + -
  • instanceof

🌟 特殊运算符:

  • , :逗号 —— 分隔数据
var num1 = 1, num = 2, num3 = 3;```
  • () :小括号运算符 —— 提升算术优先级
var i = 1 + 3 * 5;
console.log(i);   // 16
var l = (1 + 3) * 5;
console.log(l);   // 20```

🌟 三元运算符:

基于某些条件对变量进行赋值的条件运算符。

var 变量=表达式?1:2
当表达式的结果为真时,将值1的值赋值给变量;当表达式的结果为假时,将值2赋值给变量.

🌟写在最后

更多Node知识以及API请大家持续关注,尽请期待。各位小伙伴让我们 let’s be prepared at all times!

✨原创不易,还希望各位大佬支持一下!
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!

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

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

相关文章

【Linux】System V IPC-命名管道共享内存消息队列

System V IPC-命名管道&共享内存&消息队列命名管道共享内存创建共享内存附加和分离共享内存消息队列消息队列的接口命名管道 使用mkfifo命令&#xff0c;创建一个命名管道&#xff0c;通过ll可以查看当前命名管道的类型 p类型&#xff0c;也就是pipe管道类型。 之前我…

Docker镜像之Docker Compose讲解

文章目录1 docker-compose1.1 compose编排工具简介1.2 安装docker-compose1.3 编排启动镜像1.4 haproxy代理后端docker容器1.5 安装socat 直接操作socket控制haproxy1.6 compose中yml 配置指令参考1.6.1 简单命令1.6.2 build1.6.3 depends_on1.6.4 deploy1.6.5 logging1.6.6 ne…

【C++进阶】01:概述

概述 OVERVIEW概述C11新特性&#xff1a;C14新特性&#xff1a;C17新特性&#xff1a;C20新特性&#xff1a;C程序编译过程C内存模型CSTL1.Queue&Stack2.String3.MapC语言C语言面向过程编程✅✅面向对象编程&#xff08;类和对象&#xff09;❌✅泛型编程、元编程&#xff…

基于PaddlePaddle的图片分类实战 | 深度学习基础任务教程系列

图像相比文字能够提供更加生动、容易理解及更具艺术感的信息&#xff0c;图像分类是根据图像的语义信息将不同类别图像区分开来&#xff0c;是图像检测、图像分割、物体跟踪、行为分析等其他高层视觉任务的基础。图像分类在安防、交通、互联网、医学等领域有着广泛的应用。 一般…

LeetCode:77. 组合——回溯法,是暴力法?

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340;算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;77. 组合 题目描述&#xff1a;给定两个整数 n 和 k&#xff0c;返回范…

风场数据抓取程序实现(java+python实现)

一、数据源参数定义 关键参数代码&#xff1a; package com.grab.catchWindData.pram;/*** ClassName: DevPrams* Description: TODO**/ public class DevPrams {public static String lev_0to0p1_m_below_ground "lev_0-0.1_m_below_ground";public static Stri…

【微服务笔记08】微服务组件之Hystrix实现请求合并功能

这篇文章&#xff0c;主要介绍微服务组件之Hystrix实现请求合并功能。 目录 一、Hystrix请求合并 1.1、什么是请求合并 1.2、请求合并的实现 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;编写服务提供者 &#xff08;3&#xff09;消费者&#xff08;Se…

React | 认识React开发

✨ 个人主页&#xff1a;CoderHing &#x1f5a5;️ Node.js专栏&#xff1a;Node.js 初级知识 &#x1f64b;‍♂️ 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; &#x1f4ab; 系列专栏&#xff1a;吊打面试官系列 16天学会Vue 11天学会React Node专栏 &#x…

【分享】免梯子的GPT,玩 ChatGPT 的正确姿势

火了一周的 ChatGPT&#xff0c;HG 不允许还有小伙伴不知道这个东西是什么&#xff1f;简单来说就是&#xff0c;你可以让它扮演任何事物&#xff0c;据说已经有人用它开始了颜色文学创作。因为它太火了&#xff0c;所以&#xff0c;本周特推在几十个带有“chatgpt”的项目中选…

双交叉注意学习用于细粒度视觉分类和目标重新识别

目录Dual Cross-Attention Learning for Fine-Grained Visual Categorization and Object Re-Identification摘要本文方法消融实验Dual Cross-Attention Learning for Fine-Grained Visual Categorization and Object Re-Identification 摘要 目的&#xff1a; 探索了如何扩展…

JDK8——新增时间类、有关时间数据的交互问题

目录 一、实体类 二、数据库 三、数据交换 四、关于LocalDateTime类型 (java 8) 4.1 旧版本日期时间问题 4.2 新版日期时间API介绍 4.2.1 LocalDate、LocalTime、LocalDateTime 4.2.2 日期时间的修改与比较 4.2.3 格式化和解析操作 4.2.4 Instant: 时间戳 4.2.5 Duration 与…

Doris(6):数据导入(Load)之Stream Load

Broker load是一个同步的导入方式&#xff0c;用户通过发送HTTP协议将本地文件或者数据流导入到Doris中&#xff0c;Stream Load同步执行导入并返回结果&#xff0c;用户可以通过返回判断导入是否成功。 1 适用场景 Stream load 主要适用于导入本地文件&#xff0c;或通过程序…

小厂实习要不要去?

大家好&#xff0c;我是帅地。 最近暑假实习招聘&#xff0c;不少 训练营 学员都拿到了小厂实习来保底&#xff0c;但是很多小厂基本要求一周内给答复&#xff0c;中大厂就还在流程之中&#xff0c;所以很纠结小厂实习要不要去。 不知道你是否有这样的纠结&#xff0c;今天帅地…

【测试面试汇总2】

目录Linux操作系统1.Linux操作命令2.在Linux中find和grep的区别&#xff1f;3.绝对路径用什么符号表示&#xff1f;4.当前目录、上层目录用什么表示&#xff1f;5.主目录用什么表示&#xff1f;6.怎么查看进程信息&#xff1f;7.保存文件并退出vi 编辑?8.怎么查看当前用户id&a…

【Python从入门到进阶】15、函数的定义和使用

接上篇《14、字典高级应用》 上一篇我们学习了有关字典的高级应用操作&#xff08;字典的增删改查&#xff09;&#xff0c;本篇我们来学习Python中函数的定义和使用&#xff0c;包括函数的参数、返回值、局部变量和全景变量等操作。 一、一个思考 例如这里有一段大东北洗浴中…

2023年PMP报考时间安排攻略!

1.2023年PMP考试时间 PMP一年开考4次&#xff0c;分别为3月、6月、9月、12月&#xff0c;预计2023年PMP第一次考试时间在2023年3月左右&#xff0c;具体以基金会官方通知为准。 1&#xff09;为什么考PMP&#xff1f; 大部分人考 PMP 无非以下几个原因&#xff0c;总的来说&…

运行时内存数据区之程序计数器

内存是非常重要的系统资源&#xff0c;是硬盘和CPU的中间仓库及桥梁&#xff0c;承载着操作系统和应用程序的实时选行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略&#xff0c;保证了JVM的高效稳定运行。 不同的VM对于内存的划分方式和管理机制存在着部分差…

算法时间复杂度计算

目录 1.时间复杂度计算 1.1 时间复杂度例题 1.1.1例题 1.1.2例题 1.1.3例题 1.1.4例题 1.2时间复杂度leetcode例题 1.时间复杂度计算 首先&#xff0c;我们需要了解时间复杂度是什么&#xff1a;算法的时间复杂度是指算法在编写成可执行程序后&#xff0c;运行时需要耗费…

一天吃透操作系统八股文

操作系统的四个特性&#xff1f; 并发&#xff1a;同一段时间内多个程序执行&#xff08;与并行区分&#xff0c;并行指的是同一时刻有多个事件&#xff0c;多处理器系统可以使程序并行执行&#xff09; 共享&#xff1a;系统中的资源可以被内存中多个并发执行的进线程共同使…

MATLAB | 给热图整点花哨操作(三角,树状图,分组图)

前段时间写的特殊热图绘制函数迎来大更新&#xff0c;基础使用教程可以看看这一篇&#xff1a; https://slandarer.blog.csdn.net/article/details/129292679 原本的绘图代码几乎完全不变&#xff0c;主要是增添了很多新的功能&#xff01;&#xff01;&#xff01; 工具函数完…