JavaScript定义变量及赋值

定义变量及赋值

 ☞ 定义变量,未赋值
    var 变量名; 默认值是undefined   
 ☞ 定义变量,且赋值
   	var 变量名 = 数据;
 ☞ 总结:
    1. 一个变量一次只能保存一个值;
    2. 以最后一次赋值为准
    3. JS变量区分大小写

变量命名规范

☞ 规则    必须遵守的,不遵守的话 JS引擎 发现并报错 
    1. 由字母(A-Za-z)、数字(0-9)、下划线(_)、美元符号( $ )组成,如:var usrAge, num01, _name
    2. 区分大小写 强调:JS 严格区分大小写 ,var app;var App; 是两个变量
    3. 不能 以数字开头
    4. 不能 是关键字、保留字 和 代码符号,例如:varforwhile&, class
    5. 不能出现空格
        
☞ 规范  建议遵守的,不遵守的话 JS引擎 也不会报错
	1. 变量名必须有意义
    2. 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。

JS关键字
在这里插入图片描述
JS保留字
在这里插入图片描述

课堂测试

1.下面四个变量声明语句中,哪一个变量的命名是正确的?
    Avar for               Bvar txt_name               
    Cvar myname myval      Dvar 2s
2. 定义两个变量,求和

3. 定义两个变量,交换两个变量的值

// 如果变量名用汉字可以不可以 比如:张三

注释

单行注释

用来注释一行代码,增强代码可读性

// 这是一个变量
var name = 'hm';

多行注释

用来注释单行或多行代码,增强代码可读性

/**
   这是一个多行代码的注释
   定义name和age变量
**/
var name ="张三"
var age = 20

JavaScript 数据类型(重点)

☞ 数据类型:数据类型指的是变量的数据类型
☞ 数据类型:简单数据类型,复杂数据类型

简单数据类型

☞ 五种[es5]:  Number  String  Boolean Undefined  Null
  • 数值类型(number)
☞ 凡是数字都属于该类型【整数,小数,负数】

☞ 只要变量的值是一个具体的数字,那么当前变量的数据类型就是数值类型

☞ number类型表示的数字大小:
	  最大值是±1.7976931348623157乘以10308次方    Number.MAX_VALUE
  	  最小值是±5 乘以10-324次方				  Number.MIN_VALUE

☞ 数值类型表示方式:(了解)
	 ✔ 十进制表示
 	var  n1=10,n2=9, n3=100;

	 ✔ 十六进制表示
 	以 0x开头 0到9之间的数字,a(A)-f(F)之间字母构成。 a-f对应的数字是10-15
	[0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f]

		var num = 0xA;

	 ✔ 八进制表示
 	八进制直接以数字0开始,有0-7之间的数字组成。[0,1,2,3,4,5,6,7]
    var num1 = 07;   
    var num2 = 06;  
    var num3 = 05;   

☞ 备注:
	 进行算数计算时,八进制和十六进制表示的数值最终都将被转换成十进制数值。
  • 字符串类型(string)
☞ 字符串可以是引号中的任意文本。可以使用单引号或双引号
	如果数据是字母,符号,汉字,这些都是字符串类型,字符串类型的就要加引号
☞ 在js中一般写字符串类型的变量时候,推荐使用单引号。
	字母,汉字,符号作为数据存在必须要用引号包含【var num = "abcdefgabcd""aaaaaaaaa";】
不管是什么数据如果用引号包含就变成字符串类型

☞ 注意:
  	 1. 单引号和双引号之间的嵌套
  	例如: 输出    我是"高帅富"程序猿;  

     2. 转义字符【\】
     \n        换行
     \\		斜杠
     \'		单引号
    \"		双引号
    \r 	   回车符
    例如:
    var strMsg = 'I'm the GOD of my world ~!';   //输出:I'm the GOD of my world ~!
    var strMsg2 = "I"m the GOD of my world ~!";  //输出:I"m the GOD of my world ~!
    var strMsg3 = '反斜杠是这个 \\,神奇!';  //输出:反斜杠是这个 \,神奇!
  • 布尔类型(boolean)(bool)
true(真)  和 false (假)
  • null空类型,undefined类型(了解)
//如果一个变量没有赋值,该变量的默认是undefined
 var n1;
//如果一个变量的值是undefined,那么该变量的数据类型就是undefined类型

复杂数据类型(目前不讲)

☞ Object 对象,Array 数组,Function 函数

课堂测试

请说出如下变量分别对应的数据类型是什么?
	var  a1=123;    var a2="123";    var a3=true;  var a4="false";   var a5="1.63";
	var  a6; 	   var a8="null"
    type0f(变量)
下列有关数据的类型说法错误的是( )
A: 数据:‘123’。数据类型为字符串类型。
B: 数据:null。数据类型为null类型。
C: 数据:‘false’。数据类型为布尔类型
D: 数据:true。数据类型为布尔类型

基础数据类型不包含下列哪一种()
A: 布尔值 Boolean
B: 数组 Array
C: 字符串 String
D: 数值 Number

数据类型判断

 ☞ 使用  typeof 变量  可以得到对应变量的数据类型
 ☞ 例如:
	   var n1 = 123;
		//获取n1的数据类型
		console.log(typeof n1);
		var n2 = '123';
		console.log(typeof n2);
		var n3 = true;
		console.log(typeof n3);

字面量

在源代码中一个固定值的表示法。【通过看具体的值,就能够知道数据类型】

数值字面量:8, 9, 10

var num = 2;var num2 = 3;

字符串字面量:'黑马程序员', "大前端"
var num = "123";var str = 'wahaha';

布尔字面量:truefalse
var n = true; var m = fasle;

课堂测试

练习思考题:计算总工资(总工资 = 基础工资 + 绩效工资)

数据类型转换

  • 转数值类型【Number,parseInt,parseFloat】

     ☞Number(变量):
      	 总结:
         	  1. 可以通过该方法将数据类型转换为数值类型
              2. 在转换的过程中可以将原来的值保留,遇到小数直接保留下来,不会舍去
              3. 如果变量无法转换为数值类型,那么返回的结果是NaN; 对应的数据类型依然是数值类
              4. 如果将布尔类型转换为数值类型,true 转化后的结果是 1  false 转化后的结果是0
       NaN:not a number【number类型】
              
      ☞parseInt(变量)取整
      	var num1 = parseInt("12.3abc");   // 返回12,如果第一个字符是数字会解析直到遇到非数字结束
        var num2 = parseInt("abc123");   // 返回NaN,如果第一个字符不是数字或者符号就返回NaN
        备注:
            1  只会保留整数部分,通过该方式进行数据类型转换后得到就是一个整数
            2. 如果一个变量中的值无法转换为具体数字,那么返回的结果是一个 NaN 的值
            3. NaN (not  a  number)   ----NaN对应的数据类型是数值类型
            4. 通过该方法可以将其他数据类型转为数值类型
            
      ☞parseFloat(变量)取浮点
    	总结:
        	 1. 通过该方法可以将其他数据类型转换为数值类型
             2. 在转换过程中,如果遇到小数,那么会直接将小数部分保留
             3. 如果转化不成功过,返回的结果NaN
    
  • 转字符串类型【n.toString,String(n)】

     ☞  变量.toString()
     		var num = 5;
    		console.log(num.toString());String(变量)
    
    n.toString();
    String(n)
    	备注:
    	String()函数存在的意义:有些值没有toString(),这个时候可以使用String()。比如:undefinednull
    
  • 转布尔类型Boolea(n)

Boolean(n) 
 备注:
	 0  |''(空字符串) | null | undefined | NaN  会转换成false  其它都会转换成 true

课后练习

 1. 让用户输入一个三位数【整数】,使用代码分别获取到这个三位数字百位,十位,个位上的数字。
  	 例如:
  	 	用户输入: 456, 最后在浏览中分别弹出 4,5,6

[(678)百位:数字 / 100 ==> 6.78==>取整]
[(678)十位:(数字 - 百位*100) / 10 ==> 取整]
  	 	
 2. 用户任意输入一个三位数,求这个三位数字百位,十位,个位之和。

运算符

算数运算符

+ 运算
	总结:
       1. 如果是数值类型的变量相加,结果就是一个数值类型的结果
       2. 如果是一个字符串类型的变量相加,最后的结果就是字符串(加号起到的作用就是拼接字符串的功能)
   如果+两边都是数字就是数学上的加,如果两边有字符串出现就会执行字符串的连接
 -运算
	 总结:
     	1. 如果是数值类型的变量相减,结果就是一个数值类型的结果
        2. 如果是数字的字符串相减,得到的结果也是一个数值类型结果(发生了隐式类型转化)
            var n1 = '123';
            var n2 = '123';
    	3. 如果是非数字的字符串相减,得到的结果是NaN
 *运算
	乘法
	
 /运算
	   1.如果是数值类型的变量相除,结果就是一个数值类型的结果
       2. 如果是数字的字符串相除,得到的结果也是一个数值类型结果(发生了隐式类型转化)
       3. 如果是非数字的字符串相除,得到的结果是NaN
       4. 如果除数是0 ,得到的结果是 Infinity (无穷大的值)
	 
 %取余(获取余数)【求两个数相除的余数】  

赋值运算符

复合赋值运算符
+= |  -=   |  *=  |  /=  |   %= 

var  a += b ;    =====> 等价于        a = a+b;
a %= 3;>>a = a % 3;
a -= 6;>>a = a - 6;

一元运算符

  • 前置++ 和 后置 ++

    ++自增1
    用法:a++++a
    // 如果a++或者++a单独运算的话,都代表a自增1
    // 但是:如果有其他操作(运算符)参与运算的时候,那么a++和++a,就有不同的含义
    var b = a++;==>先把a赋值给b,a再自增(自加)
    var b = ++a;==>先把a自增1,再赋值给b
    
  • 前置-- 和 后置–

    减减和加加同理
    自减1
    

    测试

1.
    var    a;
    var    b=6;
    a=++b;
    请问:a的值是多少,b的值是多少。
    a=b++;
    请问:a的值是多少,b的值是多少。
2.
var a = 1; var b = ++a + ++a;   console.log(b);    
var a = 1; var b = a++ + ++a;   console.log(b);    
var a = 1; var b = a++ + a++;   console.log(b);    
var a = 1; var b = ++a + a++;   console.log(b); 

比较运算符

1.   >  
    
2.   <
    
3.   >=     大于 或者 等于,只要有一个满足即可
    
4.   <=     小于 或者 等于,只要满足一个即可

5.  ==      只用来比较变量中的值是否相等,不考虑数据类型
    
6.  ===     用来判断值和数据类型必须同时相等
    
7.  !=	    判断值是否不相等,不考虑数据类型
 
8.  !==      判断值和数据类型
    
    
☞ 总结:
	  ✔ 通过比较运算符得到的结果只有两个结果,一个是正确的,一个是错误的
      ✔ 通过比较运算符得到的结果 只有 true[正确]false[错误]

判断一个变量是不是NaN

NaN:not a number【特殊值】
isNaN:is not a number【判断】

​	用来判断一个值是否是数字,如果是数字得到的false,如果不是数字得到的是trueisNaN(n)'aaa' is not a number
例如:
	var usrAge = 21;
    var isOk = isNaN(usrAge);
    console.log(isNum); // false

逻辑运算符

 1.   ||  或: 条件只要有一个满足即可
      总结:
      	  1. 如果条件中有一个结为true(代表有一个条件满足了),那么通过或运算后最后的结果为true
          2. 如果条件中结果都不满足,那么通过或运算后结果为false
          如果有一个为true,结果为true,只有两个都为false,结果为false
     
 2.   &&  与(且): 要求所有的条件都必须满足才可以
 	  总结:
	      1. 如果条件都为真(true),那么通过且运算后最后的结果也是真(true2. 如果条件中自少有一个条件不满足(false),那么通过且运算后的结果为false
          两个条件都为true,结果true,有一个为false,结果为false
     
 3.   !	  非(取反) : 

课堂测试

js 的运算符不包含哪项()  
A: 类比运算符
B: 逻辑运算符
C: 赋值运算符
D: 比较运算符

运算符优先级(了解)

优先级从高到底
	1. ()  优先级最高
	2. 一元运算符  ++   --   
	3. 算数运算符  先*  /  %+   -
	4. 关系运算符  >   >=   <   <=
	5. 相等运算符   ==   !=    ===    !==
	6. 逻辑运算符 !&&||
	7. 赋值运算符:=
 1:括号最高2,赋值运算符最后执行
 一旦有多个运算符参与运算的时候,脑子里必须知道运算符有优先级的问题存在

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

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

相关文章

PC电脑端的小程序顶部自定义标题失效的原因

windows客户端不被支持:navigationStyle:custom!! navigationStylestringdefault导航栏样式&#xff0c;仅支持以下值&#xff1a; default 默认样式 custom 自定义导航栏&#xff0c;只保留右上角胶囊按钮。iOS/Android 微信客户端 7.0.0&#xff0c;Windows 微信客户端不支…

一文读懂Python中的映射

python中的反射功能是由以下四个内置函数提供&#xff1a;hasattr、getattr、setattr、delattr&#xff0c;改四个函数分别用于对对象内部执行&#xff1a;检查是否含有某成员、获取成员、设置成员、删除成员。 获取成员: getattr class Foo:def __init__(self, name, age):se…

c语言实战之贪吃蛇

文章目录 前言效果展示游戏用到的图片游戏思路一览游戏前准备一、贪吃蛇、食物、障碍物节点坐标的结构体二、枚举游戏状态、和贪吃蛇的方向三、维护运行的结构体 游戏开始前的初始化一、学习图形库相关知识二、设置背景三、欢迎界面四、初始化贪吃蛇五、生成障碍物六、生成食物…

【Uni-App】Vue3如何使用pinia状态管理库与持久化

安装插件 pinia-plugin-unistorage 引入 // main.js import { createSSRApp } from "vue"; import * as Pinia from "pinia"; import { createUnistorage } from "pinia-plugin-unistorage";export function createApp() {const app create…

Backtrader 文档学习-Order StopTrail(Limit)

Backtrader 文档学习-Order StopTrail(Limit) 1.概述 版本1.9.36.116之后支持[StopTrail, StopTrailLimit and OCO]的订单类型&#xff0c;并支持broker的实时交互 。 StopTrail订单&#xff0c;它是一种追踪止损订单。当市场价格朝定义的交易方向移动时&#xff0c;StopTrai…

国考省考行测:分析推理,形式逻辑,所有有的分析

国考省考行测&#xff1a; 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能&#xff0c;附带行测和申论&#xff0c;而常规国考省考最重要的还是申论和行测&#xff0c;所以大家认真准备吧&#xff0c;我讲一起屡屡申论和行测的重要知识点 遇到寒冬&am…

【LeetCode】98. 验证二叉搜索树(中等)——代码随想录算法训练营Day20

题目链接&#xff1a;98. 验证二叉搜索树 题目描述 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树…

什么是正向代理?为什么要使用它?

在计算机网络中&#xff0c;代理服务器&#xff08;Proxy Server&#xff09;是一种充当客户端和目标服务器之间的中间人的计算机或应用程序。代理服务器可以用于多种目的&#xff0c;其中之一就是正向代理。 正向代理的定义 正向代理是一种代理服务器配置方式&#xff0c;它…

多场景建模:快手参数及Embedding个性化网络PEPNet

Parameter and Embedding Personalized Network (PEPNet) 背景 多场景&#xff1a;双列Tab&#xff08;Double-Columned Discovery Tab&#xff09;、精选Tab&#xff08;the Featured-Video Tab&#xff09;、沉浸单列Tab&#xff08;the Single-Columned Slide Tab&#xf…

spring-bus消息总线的使用

文章目录 依赖bus应用接口用到的封装参数类 接收的应用监听器定义的事件类 使用bus定义bus远程调用A应用数据更新后通过bus数据同步给B应用 依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-amqp…

使用CUDA过程中出现异常

使用&#xff1a;yolo detect train dataSKU-110K.yaml modelyolov8n.pt epochs100 imgsz640 device0,1 出现错误 UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up e nvironment, e.g. changing env variable CUDA_VISIB…

ATM和AMS启动流程

AMS 即 ActivityManagerService&#xff0c;负责 Activy、Service、Broadcast、ContentProvider 四大组件的生命周期管理。本文主要介绍 AMS 的启动流程和初始化过程。AMS 在初始化的过程中&#xff0c;也伴随着了ATMS&#xff08;ActivityTaskManagerService&#xff09;的初始…

QT使用QFileSystemModel实现的文件资源管理器(开源)

文章目录 效果图现实的功能总体框架功能介绍视图双击进入处理复制与剪切粘贴重命名&#xff0c;新建显示文件详细信息文件路径导航栏 总结 效果图 现实的功能 支持文件/文件夹复制&#xff0c;粘贴&#xff0c;剪切&#xff0c;删除&#xff0c;重命名的基本操作支持打开图片&…

一键部署私有化的思维导图SimpleMindMap

简介 SimpleMindMap 是一个可私有部署的web思维导图工具。它提供了丰富的功能和特性&#xff0c;包含插件化架构、多种结构类型&#xff08;逻辑结构图、思维导图、组织结构图等&#xff09;、节点内容支持文本、图片、图标、超链接等&#xff0c;支持拖拽、导入导出功能、快捷…

windows消息循环之手撸一个Win32窗口程序

Windows消息循环&#xff08;Windows Message Loop&#xff09; 在Windows操作系统中&#xff0c;一个程序通过不断地接收和处理消息来保持活动状态的一种机制。在Windows编程中&#xff0c;消息循环是处理用户输入、操作系统事件和其他消息的关键部分。 在Windows应用程序中…

join | join_any | join_none之间的区别

文章目录 前言一、join/join_any/join_none之间的区别总结 前言 本文主要记录一下&#xff0c;与fork想匹配的三个选项&#xff0c;join/join_any/join_none之间的区别。 一、join/join_any/join_none之间的区别 join&#xff0c;等到所有的子进程全部结束&#xff0c;才能继…

软件测试|Python自动化测试实现的思路

Python自动化测试常用于Web应用、移动应用、桌面应用等的测试 Python自动化实现思路通常分为以下几步&#xff1a; 1. 确定自动化测试的范围和目标&#xff1a; 首先需要明确需要进行自动化测试的范围和目标&#xff0c;包括测试场景、测试用例、测试数据等。 2. 选择自动化…

【代码随想录-链表】移除链表元素

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

shell脚本——条件语句

目录 一、条件语句 1、test命令测试条件表达式 2、整数数值比较 3、字符串比较 4、逻辑测试&#xff08;短路运算&#xff09; 5、双中括号 二、if语句 1、 分支结构 1.1 单分支结果 1.2 双分支 1.3 多分支 2、case 一、条件语句 条件测试&#xff1a;判断某需求是…

《Linux C编程实战》笔记:管道

从这节开始涉及进程间的通信&#xff0c;本节是管道。 管道是一种两个进程间进行单向通信的机制。因为管道传递数据的单向性&#xff0c;管道又称之为半双工管道。。管道的这一特点决定了其使用的局限性。 数据只能由一个进程刘翔另一个进程&#xff1b;如果要进行全双工通信…