学习目录



1。数据类型



数据类型



二,算子



增加和减少运营商:



位运算符:

布尔算子:

加法算子:

相等运算符



三。

在一份声明中

标签声明



数据类型



数据类型



基本数据类型(五种类型)

未定义

无效的

布尔

数

字符串

复杂数据类型(一)

对象

未定义的只有一个值(定义没有赋值)。

例:
var;警报(STR);未定义的

注意:如果您不向VaR声明,直接使用将报告一个异常(…未定义)。

建议:每个var声明给出一个初始值,它可以减少很多事故。

如:
VAR STR;var str2 =;张三STR =力量+ str2;警报(STR); / /没有我们预期的张三

无效的:

布尔值:只有两个文字值:真和假。

任何数据类型都可以通过布尔()函数转换成布尔类型。

字符串:非空字符=真空字符= false

数字:任何非零=真正的0和false = false

对象:任何对象

未定义的= false

如:
var str =布尔(南);var str2 =布尔(张三);var STR3 =布尔(定义);警报();

在这种情况下,当使用if语句时,我们将自动执行相应的布尔转换。


如果(STR){
只要它是非空字符、任何非零数字和任何非空对象,则它都是真的。
如果false是空的,那么它是false,0、楠、null和未定义都是false。
这将节省我们的判断。
警报();
}


一点点

二,算子

增加和减少运营商:

{、数字、数字、+、数字——}
VaR的年龄= 3,年龄= 3;年龄+ +;+ + age2;警报(年龄++年龄);

都是4。看来没什么区别。
VaR的年龄= 3,年龄= 3,num1,num2;num1 =年龄+ + + 1;num2 = + +年龄+ 1;警报(num1 ++ num2);

好的,区别是。一个是4,一个变成5。为什么会这样优先级不同。年龄+ +执行运算符+,然后添加1到自己,+1年龄首先添加1,然后+运算符加1。

位运算符:

{根据非(~),和(或),根据新闻或(|),按位异或XOR(^),左(>),符号(> > >)}权

事实上,我们很少使用它,这里有一点了解。

逐位

VaR num1 = 25; / /二进制000000000000000000000000000 11001

VaR num2 = ~ num1; / / 111111111111111111111111111 00110元

警报(num2); / / 26

示例:逐位和


var结果= 253;
警报(结果);1
/ / *********************
25 = 0000000000000000 00000000000 11001
3 = 0000000000000000 00000000000000 11
---------------------------------------------
= 0000000000000000 000000000000000 1


示例:逐位



var结果= 25·3;
警报(结果);26
/ / *************
25 = 0000000000000000 00000000000 11001
3 = 0000000000000000 00000000000000 11
---------------------------------------------
异或= 0000000000000000 00000000000 11010十进制值26


例如:左移


var属性的旧值= 2; / /等于二进制10
VaR风险价值=属性的旧值<5; / /等于1000000,二进制,十进制数64


右边有个标志。


var属性的旧值= 64; / /等于二进制1000000
无功价值=属性的旧值> > 5; / /等于10,二进制,十进制数2


示例:无符号右移(这个差值有点大,因为第三十二的值是1表示负数)。


var属性的旧值= 64; / /等于000000元11111111111111111111111111
Var newValue = oldValue > > > 5; / / 00000111111111111111111111111110 equals decimal 134217726




布尔算子:

{逻辑、逻辑和非(!)(),(逻辑或| |)}

这里需要说的是| |短路操作。如果| |在满足检测条件落后没有条件前,面前的一个不满足条件不落后的检测条件。

例:


var年龄= 3;
如果(年龄| | AAA)年龄 / /布尔{这是真的,所以AAA后没有检测到。
警报(年龄);}
如果(AAA | |年龄){ / /这里会报错
警报(年龄);}


测试:
VaR的年龄= 3;如果(年龄| | AAA)年龄 / /布尔{这是真的,所以AAA后未检测到。警报(年龄);}如果(AAA | |年龄){ / /这里将错误警报(年龄);}

这里可以告诉你一个小技巧,很多时候我们不知道一个变量是否有价值,但是我们需要正常使用它,然后我们可以给一个备用轮胎。

例如,浏览器的兼容性问题,在旧的浏览器,我们使用window.event获取事件相关的属性值。在新的浏览器中,通过表单参数直接传输。


功能myonclick(EV){
风险事件= EV window.event / / | |;确保新的浏览器兼容性
}


实验:
var obj = null;var obj2 = obj | |备胎;警报(obj2);

加法算子:

{加(+),减(-)}

这是比较熟悉的,但仍有一点注意。


Var strnum1 = 5;
VaR num2 = strnum1 + 3;
strnum1 VaR小键盘数字3 = 3;
警报(num2 =+小键盘数字3 num2 + = +小键盘数字3); / /这是什么结果


让我们来测试它。
无功strnum1 =5;var num2 = strnum1 + 3 = 3;var小键盘数字3 strnum1;警报(num2 =+小键盘数字3 num2 + = +小键盘数字3); / /这是什么结果

那是为什么当字符串和数字相加时,数字变成一个字符串。字符串和数字被减去,字符串被转换成数字。

相等运算符


VaR num1 =5;var num2 = 5;无功容量= num1 = = num2;警报(num1是num2:+相等);

奇怪的是,字符串等于数字。是的,自动转换在这里使用。但是我们不希望看到这样的结果吗
VaR num1 =5;var num2 = 5;无功容量= num1 = = = num2;警报(num1是num2:+相等);

是的,我们可以使用=等于,不仅是比较值,而且是类型。

三。

在一份声明中

for循环语句使用得很频繁,在for中经常使用较少。(for循环应用于非数组对象的遍历,而循环通过使用for调用称为枚举)。

例:
var obj = {编号:2,名称:三};STR =无功;为(O obj){ str =属性+ O +:+ obj { O } + }警报(STR);

标签声明

在C #感觉是相似的,但不一样。

我们有没有试过跳出多个循环嵌套的第二层一般来说,我们只能使用中断或继续跳出循环的内部,或者从整个函数中跳出,不能期望的是有一个标签语句可以跳出任意层。

例:
var最外:对于(var = 0;i = 10;i 0;i +;){ for(var j=0;j < 10;j +){ {如果(i = 5 = j=5){最外层};;+ +;};警报; / 55(数字)

嗯,第一个就在这里。最后,给大家一些有趣的问题。

一、为什么1 = 0 9999999999…

两。为什么警报(0.1 + 0.2) 0.3000000000000000

三。为什么警报(0123 + 4) 87



四,



var obj1 = {};obj1.name2 =张三;

var str1 =测试;str1.name2 =李四;

警报(obj1.name2 ++ str1。name2);

值是什么



五,



var obj1 = {作者:111 };

var obj2 = obj1;

obj1.name2 =222;

警报(obj2。2); / /什么出现在这里

obj1 = {作者:333 };

警报(obj2。2); / /什么出现在这里



六,



VaR的乐趣=功能(num1){

如果(num1 <= 1){

返回1;

}

{其他

返回num1 *乐趣(num1 - 1);

}

}

VaR的大脑=乐趣;

乐趣=函数(){

返回1;

}

警报(大脑(5)); / /什么出现在这里

还有一点时间来介绍Javascript的基本数据类型。

Javascript的基本数据类型包括6种类型:数字。

2.1号类型

号码类型用于存储数字值,它描述了64位的浮点数。但Javascript并不代表所有0-2e64之间的值,因为它还需要代表非整数,包括复数,分数,等等。对于64点,我们需要使用11位存储数字的小数部分,用1位来表示阳性和阴性,所以Javascript可以代表价值之间的2e52和2e52。

2.2字符串型

字符串类型用于表示文本,单引号或双引号可用于包含文本。任何引号中的符号都会被视为字符串,但对于特殊符号,它可能需要逃避。

2.3布尔型

布尔类型只包含两个值:true和false,我们可以使用程序中的各种布尔表达式实现true或false来实现不同的业务分支处理。

我们可以包含多个条件之间的关系的表达,可条件和非优先之间,在计算,如下:| |优先级最低的其次,然后是比较运算符,最后是其他运营商(例如!)。

像许多其他的语言,和前面,当条件为假,条件是不再计算| |,当条件为真,条件是不再计算。

请看下面的例子:


功能conditiontest(){
var =;
var =;
var;
打印(键);
如果(a =)打印();
如果(a = = =)打印;
如果(= = | | changevalue(C))打印(C {关键});
如果(= = changevalue(C))打印(C {关键));
}
功能changevalue(obj){
obj {关键=改变;
返回true;
}


其输出结果如下:


老
= 1
a = 1 = 1
老
改变


可以在| |使用,不叫changevalue。

2.4未定义的类型

当我们声明一个变量,但当我们不赋值给它时,它是未定义的,如下所示。

VaR B;

印刷(b);

在Javascript中,有一个与未定义的值相似的值:NULL。未定义的变量表明已声明但未复制,null表示变量被赋值但空,注意未定义的值为真是很重要的。

2.5类型转换

我们在上述定义= null值是真实的,但我们使用类型的操作可以发现,零是对象类型,这表明在比较过程中,类型转换。

类型转换是指将一种类型的值转换为另一种类型的值。

请看下面的例子:


功能converttypetest(){
var =;
var;
打印();
打印();
打印(类型一:+种类);
打印(型B:+型B);
打印();
打印()++(A = B));
打印()a = =(b):+(a =(b));
打印()字符串(a)= + +(字符串(a)= b));
打印(式的定义:+类型定义);
打印(式的空:+ typeof null);
打印();
打印();
}


输出结果如下:


答:1
B:1
A类型:数字
B类型:字符串
a =:b:真的
a =:false
A = =(b):真的
字符串(a):
未定义的类型:未定义的
空类型:对象
未定义的= NULL:真的
未定义的= null = false


您可以清楚地看到差异= =和= =。