关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程教程 > 技术文章 > 正文

JavaScript变量类型和运算符

guanshanw 2023-08-22 03:05 34 浏览 0 评论

javascript变量作用域: 全局变量作用域包含函数库

JavaScript 变量名称的规则:

JavaScript变量类型和运算符

变量对大小写敏感(y 和 Y 是两个不同的变量)

变量名不能以数字开头

变量重新赋值时,没必要再使用var初使变量,否则程序不能正常运行

变量名可以使用大小写英文字母、数字、下划线(_)、美元符号($)组成

数据类型:

基本数据类型:

Number型 包含整数型和浮点型, NaN、Infinity也是Number型;

var myDataA=8;

var myDataB=6.3;

var str = "sujguguugu";

alert(typeof Number(str)); //number typeof(Number(str)) 有两个系统函数

String型

var nameA="Tom";

var nameB='Tom';

若字符串本身有双引号,就应该用单引号将字符串引起来;若字符串本身有单引号,就应该用双引号将字符串引起来;

var score = "run time 3\'15\""; // "\"可以不要 等同于下面的例子

var score = "run time 3'15\"";

Boolean型

var bChooseA=true;

var bChooseB=false;

true: 非零数字、非空字符串、非空对象(如:document)

false:数字零、空字符串、空对象(null)、undefined、NaN(Number转换过来的);

var oObject = document;

if(oObject){

alert("真的");

}else{

alert("假的");

}

输出结果:真的

Undefined型

var name;

变量声明未赋值就是undefined型

Function型

var myFunction = new Function{

statements;

};

Null型

当一个变量没有保存有效的数据时或对象不存在时, 都将返回null。

数据类型null只有一个值"null"。

可以通过给一个变量赋 null 值来清除变量的内容。

提示:为什么null的类型是object了呢? 其实这是JavaScript最初实现的一个错误, 后来被ECMAScript沿用下来。

在今天我们可以解释为, null是一个不存在的对象的占位符。

var score = prompt("请输入您的分数");

var str ;

if(score == ""){

//用户没有填写数据 直接点击了确定按钮

str = "您没有填写数据,请重新填写!";

}else if(score == null){

//用户直接点击了取消按钮

str = "您点击了取消按钮,请重新填写!";

}else{

//代表用户已经填写了相应的数据 但是这个数据不一定合法? 1-100之间

//先将获取到的数据转换为数值型数据

//用户是不是可以输入 1-100以外其它数值数据

var fenshu = Number(score);


if(fenshu >=0 && fenshu <=100 ){


if(fenshu >=90){

str = "优秀";

}else if(fenshu >=80){

str = "良好";

}else if(fenshu >=70){

str ="中等";


}else if(fenshu >=60){

str ="及格";


}else{

str ="您还需要再努力";


}


}else{

str ="用户输入的数据不合法!";

}


}

alert(str);

Null值的来源:

1 window.prompt()

输入提示框点击取消按钮, 则返回NULL;

2 String.matct(SearchValue/regExp):

如果没有找到字符串, 则返回Null;

3 RegExpObject.exec(string)

如果没有找到匹配, 则返回Null;

组合类型:

Array型

var score = [56,34,34,76,45];

var score = [56,34,"34",76,"45"];

var score = Array(56,34,"34",76,"45");

var m = score[3];

var aColor = new Array(); //可以不声明数组的数量

aColor[0]="blue";

aColor[1]="yellow";

数组的长度

var length = score.length;

Object型

document.bgcolor

document.write("Wecome to Javascript world!");

alert(typeof null) //object null属于对象类型

运算符

赋值运算符

"="、"+="、"-="、"*="、"/="、"%="、"&="、"^="等

基本数学运算符

"+"、"-"、"*"、"/"和"%"等

<HTML>

<HEAD>

<SCRIPT LANGUAGE = "JavaScript">

var x=100;

var y;

var z;

document.write("<H2>竞拍SONY数码相机 600万像素" +x+"$起价</H2>");

y=prompt("加多少银子?","1");

z=x+parseFloat( y );

alert("您最终的出价\n"+z+"#34;); //”\n”用于换行显示

</SCRIPT>

</HEAD>

<body>

</body>

</HTML>

parseFloat( )函数将字符串转换为float数据

parseInt( )函数将字符串转换为int数据

如果转换失败, 返回NaN值(not a number)

toExponential()方法将数值转换为科学计数法

var fNumber = 895.4;

alert(fNumber.toExponential(1)); //9.0e+2 小数位为1位

alert(fNumber.toExponential(2)); //8.95e+2 小数位为2位

console.log(10/0); //Infinity infinity: 无穷大

console.log(-10/0); //-Infinity

console.log(0/0); //NaN

console.log("彭纪涵"/"许宸恺"); //NaN

console.log(parseInt(-0.232)); //0

console.log(parseInt(true)); //NaN

console.log(parseFloat("商品的价格: 23.05")) //NaN

console.log(parseFloat("23.05元")) //23.05

<script type="text/javascript">

var num = parseInt(prompt("请输入天数"));

//今天是星期一

var weekdate = (num%7 + 1) % 7;

alert(num+"天后星期:"+weekdate)

console.log(num+"天后星期:"+weekdate)

</script>

位运算符

"&"、"|"、"^"和"~"等

位移运算符

"<<"、">>"和">>>"等

& 只有参加运算的两位都为1, 运算的结果才为1, 否则为0.

| 只有参加运算的两位都为0, 运算的结果才为0, 否则为1.

^ 只有参加运算的两位不同, 运算的结果才为1, 否则为0.

自加和自减

自加运算符为"++"和自减运算符为"--"分别将操作数加1或减1。

运算符写在变量前面,则返回值为自加或自减后的值;

而写在后面,则返回值为自加或自减前的值。

给定 y=5

var x=++y x=6

var x=--y x=4

比较运算符

"=="、"!="、">"、"<"、"<="、">="、"==="等

console.log(1==1);//true

console.log("梁永灿"=="梁永灿");//true

console.log(true==true);//true

console.log(null==null);//true

console.log(undefined==undefined);//true

console.log(Infinity==Infinity);//true

console.log(Infinity==-Infinity);//false

console.log(NaN==NaN);//false

console.log(undefined==null);//true

逻辑运算符

"&&"、"||"和"!"等

逻辑运算符用于测定变量或值之间的逻辑。

给定 x=6 以及 y=3,下表解释了逻辑运算符:

用于两个逻辑型数据之间的操作,返回值的数据类型为布尔型

&& and (x < 10 && y > 1) 为 true

|| or (x==5 || y==5) 为 false

! not !(x==y) 为 true

&&和||(讨论两个操作数不都是布尔值的情况)

&&:

如果第一个操作数是对象(变量), 那么返回第二个操作数

如果第二个操作数是对象(变量), 只有在第一个操作数为true的情况下才会返回该对象

如果两个操作数都是对象(变量), 那么返回第二个操作数

在一个操作数是对象(变量)或true下, 如果有一个操作数是null, 那么返回null

在一个操作数是对象(变量)或true下, 如果有一个操作数是NaN, 那么返回NaN

在一个操作数是对象(变量)或true下, 如果有一个操作数是undefined, 那么返回undefined

||:

如果第一个操作数是对象(变量), 那么返回第一个操作数

如果第一个操作数的求值结果为false, 那么返回第二个操作数

如果两个操作数都是对象(变量), 那么返回第一个操作数

如果两个操作数都是null, 那么返回null

如果两个操作数都是NaN, 那么返回NaN

如果两个操作数都是undefined, 那么返回undefined

var name='tom';

var age = 23;

var addr = "beijing";

var ismarried = false;

//返回操作数之一

console.log(name && age); //23

console.log(name || age); //tom

console.log(age && name); //tom

console.log(age || name); //23

console.log(ismarried && addr); //false

console.log(true && age); //23

console.log(false && age); //false

console.log(true || age); //true

console.log(false || age); //23

console.log(age && true); // true

console.log(age || true); //23

console.log(age && false); //false

console.log(age || false); //23

var a = 5;

var b = 0;

var c = true;

console.log(a && b); //0

console.log(a || b); //5

console.log(a || c); //true

console.log(a && c); //5

console.log(b && c); //0

console.log(a || c); //true

以上逻辑运算符进行运算时不会对0、1、true、false进行转换

结论:

只要"&&"前面是false, 无论"&&"后面是true还是false, 结果都将返"&&"前面的值;

只要"&&"前面是true, 无论"&&"后面是true还是false, 结果都将返"&&"后面的值;

只要"||"前面为false, 无论"||"后面是true还是false, 结果都返回"||"后面的值;

只要"||"前面为true, 无论"||"后面是true还是false, 结果都返回"||"前面的值;

逗号运算符

用逗号运算符可以在一条语句中执行多个运算。

var iNum1 = 1, iNum = 2, iNum3 = 3;

可使用逗号","将多个语句连在一起,浏览器载入该代码时,将其作为一个完整的语句来调用,但语句的返回值是最右边的语句。

dataA=(dataB=1,dataC=2,dataD=20);

document.write(dataA); //20

dataA的值为20,也就是dataA 值等于dataD

空运算符

空运算符对应的关键字为"void",其作用是定义一个表达式,但该表达式并不返回任何值。

dataA=void(dataB=1,dataC=2,dataD=3);

document.write(dataA); //undefined

dataA的值为undefined

条件运算符(三目运算符)

variablename=(condition)?value1:value2;

变量 = 布尔表达式? 语句1:语句2;

例如: y = x >0 ? x : -x;

(age<18)?alert(contentA):alert(contentB);

对象运算符

JavaScript脚本语言主要支持四种对象运算符,包括点号运算符、new运算符、delete运算符以及()运算符等。

var myColor = document.bgColor;

window.alert(msg)

也可以使用方括号"[]"来访问对象的属性

var myColor = document["bgColor"];

var myClassmate=new Array("JHX","LJY","QZY","HZF");

delete myClassmate[2];

delete运算符主要用于删除数组的特定元素,也可以删除对象的属性、方法等。

()运算符用来调用对象的方法

window.alert(msg)

typeof运算符

typeof运算符用于表明操作数的数据类型,返回值为字符串

var myString = typeof(data);

NaN 属性是代表非数字值的特殊值(not a number)。

该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。

提示:请使用 isNaN() 全局函数来判断一个值是否是 NaN 值。

<script type="text/javascript">

var test1="300"

var test2="Hello World!"

document.write(Number(test1)+ "<br />")

document.write(Number(test2)+ "<br />")

document.write(isNaN(test1)+ "<br />")

document.write(isNaN(test2))

</script>

输出:

300

NaN

false

true

Number()、parseInt()、parseFloat()

以上函数转换字符串时, 如果第一个字符不是一个数值的话, 则会转换成NaN;

注意:变量不要带引号,否则变成字符串

alert("this is an example");

alert(fresheggs);

赋值传值和引用传址

赋值传值:将一个变量的值赋值给另外一个变量,如果这个变量的值修改的话不会影响到另外一个变量。这两个变量之间没有任何联系

引用传址:将一个变量的值赋值给另外一个变量,如果这个变量的值有修改的话那么另外一个变量将同时受到影响。将一个变量的内存地址赋值给另外一个变量 这两个变量同时指向一同一个内存地址。这两个变量是有联系的。

在JS中基本数据类型的赋值操作都是赋值传值;复合数据类型的赋值都是引用传址。

+号是的使用

如果加号左右两边都是数值型那么+就是+号(运算符的加号)

如果加号左右两边有一边是字符串那么+就是起拼接(链接)作用

如果上述都不符合直接NaN

cosole.log(1+"a"+1+1); //1a11

console.log(1+1+"a"+1+1); //2a11

console.log(undefined + null); //NaM

console.log(1 + undefined + "a" + 2 + null + true) //NaNa2nulltrue

注意: 使用加号作为数学运算时, 一定要注意将字符串型数据转换为整型(parseInt()函数)

typeof(判断变量)或者typeof 判断变量

数据类型 返回值

数值型 number

字符串类型 string

布尔类型(true/false) boolean

null object

undefined undefined

Array object

function function

Object object

Regexp object

相关推荐

七条简单命令让您玩转Git
七条简单命令让您玩转Git

凭借着出色的协作能力、快速部署效果与代码构建辅助作用,Git已经得到越来越多企业用户的青睐。除了用于开发商业及消费级应用之外,众多科学及政府机构也开始尝试使用这...

2023-10-07 12:14 guanshanw

基本完整的关于Git分支branch的操作
基本完整的关于Git分支branch的操作

Git使用背景项目中要用到dev或者其他分支开发完代码,需要将该分支合并到master的需求操作步骤下面以dev名称为lex为分支名为例来操作一遍客户端操作:...

2023-10-07 12:14 guanshanw

Git 进阶(合并与变基)
Git 进阶(合并与变基)

在Git中整合来自不同分支的修改主要有两种方法:合并(merge)以及变基(rebase)合并(merge)merge流程图merge的原理是找到这两个分...

2023-10-07 12:13 guanshanw

Git学习笔记 003 Git进阶功能 part5 合并(第一部分)

合并(merge)是很常用的操作。尤其是一个庞大的很多人参与开发的企业级应用。一般会设定一个主分支,和多个副分支。在副分支开发完成后,合并到主分支中。始终保持主分支是一个完整的,稳定的最新状态的分支。...

非标题党,三张图帮你理解git merge和git rebase的区别
非标题党,三张图帮你理解git merge和git rebase的区别

初始场景:基于正常的开发分支修改几个小bug,然后在合并到开发分支上。gitmergegitcheckoutfeaturegitmergeho...

2023-10-07 12:13 guanshanw

git 初次使用(01)
git 初次使用(01)

先从github上克隆代码下来:使用vscode克隆代码如下图,填写上github仓库地址:vscode有时候克隆代码速度比较慢,可以用命令行方式克隆gitc...

2023-10-07 12:12 guanshanw

Git 远程操作

4.Git远程操作命令说明gitremote远程版本库操作gitfetch从远程获取版本库gitpull下载远程代码并合并gitpush上传远程代码并合并4.1远程版本库操作gitre...

Git常用命令-总结
Git常用命令-总结

创建git用户$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.em...

2023-10-07 12:12 guanshanw

git中删除从别人clone下来项目的git信息,并修改为自己的分支

如果你从别人的Git存储库中克隆了一个项目,并想要删除与该存储库相关的Git信息,并将其修改为你自己的分支,则可以执行以下步骤:使用gitclone命令克隆存储库:gitclone<u...

git系列-回滚和放弃本地修改

回滚历史提交就是reset的功能。这种情况是已经提交远程仓库,需要回滚到之前的提交。gitreset--hardcommitId//注:强制提交后,当前版本后面的提交版本将会删掉!gi...

GIT使用小技巧大全
GIT使用小技巧大全

在大型软件工程的开发过程中,版本控制是无法绕过去的;目前来说,最火的版本控制软件就是GIT了。早两年SVN比较火,不过被大神linus喷了几次后,就日落西山了,...

2023-10-07 12:11 guanshanw

git相关命令-上
git相关命令-上

这些命令都是看了文档后,个人觉得比较有用的一些,展示给大家。回到远程仓库的状态抛弃本地所有的修改,回到远程仓库的状态。gitfetch--all&...

2023-10-07 12:10 guanshanw

Git命令行接口:掌握Git的必备技能
Git命令行接口:掌握Git的必备技能

Git是一款强大的分布式版本控制工具,它支持命令行界面操作。熟练掌握Git命令行接口,是开发者使用Git的必备技能之一。在这篇文章中,我们将介绍Git命令行接口...

2023-10-07 12:10 guanshanw

Git命令详解
Git命令详解

相信各位小伙伴们应该都对git有一些了解,毕竟作为代码管理的神器,就算不是IT行业的小伙伴肯定也或多或少的听说过一些。今天就来和小伙伴们分享一下自己总结的常用命...

2023-10-07 12:10 guanshanw

工作7年收集到的git命令
工作7年收集到的git命令

概念git中的术语解释:仓库也叫版本库(repository)stage:暂存区,add后会存到暂存区,commit后提交到版本库git安装linux...

2023-10-07 12:10 guanshanw

取消回复欢迎 发表评论: