龙空技术网

JavaScript变量类型和运算符

寒笛过霜天 114

前言:

目前咱们对“js变量的值”都比较关心,各位老铁们都需要了解一些“js变量的值”的相关文章。那么小编在网摘上汇集了一些关于“js变量的值””的相关内容,希望咱们能喜欢,姐妹们快快来学习一下吧!

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+"$"); //”\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

标签: #js变量的值