手机版

带领大家学习javascript基础章节(1)的基本概念

时间:2021-09-22 来源:互联网 编辑:宝哥软件园 浏览:

学习目录

一、数据类型。

数据类型

第二,经营者

和递减运算符:

位运算符:布尔运算符:加法运算符:相等运算符。

Iii .语句-in语句标签语句。

一、数据类型。

数据类型

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

undefinednullbooleannenumberstring

复杂数据类型(一种)

对象未定义:只有一个值未定义(定义时没有赋值)。

示例:

var str警报;//未定义

注意:如果没有用var声明,请使用报告异常(.未定义)。

建议:给每个var语句赋值初始值,可以减少很多意外情况。

例如:

var strVar 2='张三';str=str str2警报;//不是我们期待的“张三”。

Null:

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

布尔()函数可以将任何数据类型转换为布尔类型。

string:non null character=true null character=false number:any非零=true 0和NaN=false object : any object=true null=false undefined=false。

例如:

var str=布尔值(NAn);Var str2=布尔('张三');var str3=布尔值(未定义);警报(str ' ' str 2 ' ' str 3);

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

如果(str) {//str为true //str只要它是非空字符、任何非零数字或任何非空对象。//str只要是null字符,0,NaN,null和undefined,就是false。//这样就省去了我们逐个判断警戒(‘真’)。}字符串:省略。

第二,经营者

和递减运算符:

【数量、-数量、数量、数量-】

var age=3,age 2=3;年龄;2岁;警报(年龄' '年龄2);

都是4,所以我好像看不出有什么区别。

var age=3,age2=3,num1,num2num1=年龄1;num 2=age 2 1;警报(num 1 ' ' num 2);

好吧,这就是区别。一个还是4,另一个变成5。为什么会这样?优先级不同。age首先执行运算符,然后向自身添加1。age首先给自己加1,然后通过运算符加1。

位运算符:

【按位NOT(~)、按位AND()、按位OR(|)、按位XOR()、左移()、带符号右移()】其实我们平时很少用到它们,这里就做一点了解。

示例:按位非

var num1=25//二进制000000000000000000000000000000000000011001 varn um 2=~ num 1;//二进制111111111111111111111111111111111111111111);//-26

示例:按位and。

var结果=25 ^ 3;警报(结果);//1//********************* 25=0000 0000 0000 0000 0000 0001 10013=0000 000 0000 0000 0000 0000 0000 0000 0011.

var结果=25 ^ 3;警报(结果);//26//************* 25=0000 0000 0000 0000 0000 0001 10013=0000 000 0000 0000 0000 0000 0000 0000 0011.

var old value=2;//等于二进制10 var new value=old value 5;//二进制等于1,000,000,十进制64种情况:有符号右移。

var oldValue=64//等于二进制1000000 var new value=old value 5;//二进制等于10,也就是十进制的2种情况:无符号右移(这个差别有点大,因为第32位用1表示的负数的值也移位了)。

var old value=-64;//等于二进制11111111111111111111111111111111111111100000 var new value=old value 5;//0000011111111111111111111111111111111111111111110等于十进制布尔运算符134217726:

[逻辑非(!),逻辑and(),逻辑or (| |)]

这里需要说的是,和| |是短路操作。| |如果前一个条件满足,后一个条件不会被检测到;相反,如果前一个不满足条件,后一个条件将不会被检测到。

示例:

var age=3;如果(age||aaa){//在这里,age从Boolean变为true,那么后面的aaa就检测不到了。警惕(年龄);}if(aaa||age){//此处将报告错误警报(age );}测试:

var age=3;如果(age||aaa){//在这里,age从Boolean变为true,那么后面的aaa就检测不到了。警惕(年龄);}if(aaa||age){//此处将报告错误警报(age );}

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

比如浏览器的兼容性,在旧的浏览器中,window.event是用来获取事件的相关属性值,而在新的浏览器中,它是以形式参数的形式直接传输的。我们可以。

function myon click(ev){ var myevent=ev | | window . event;//这样可以保证新旧浏览器的兼容性} Lab :

var obj=nullVar obj2=obj||“备胎”;警报(obj 2);

加法运算符:

[加法(),减法(-)]

这很熟悉,但还是有一点需要注意。

var strnum1=' 5var num 2=strnum 1 3;var num 3=str num 1-3;alert(' num 2=' num 2 ' num 3=' num 3 ');//这里会有什么结果?我们来测试一下。

var strnum1=' 5var num 2=strnum 1 3;var num 3=str num 1-3;alert(' num 2=' num 2 ' num 3=' num 3 ');//这里会有什么结果?

为什么会这样?这个数字将被转换成一个字符串。字符串被转换成数字。

相等算子

var num1=' 5var num 2=5;var isEqual=num1==num2alert(' num 1是否等于num2:'是否等于');

奇怪,一个字符串怎么能等于一个数字?是的,这里使用了自动转换。但是如果我们不想看到这样的结果呢?

var num1=' 5var num 2=5;var isEqual=num1===num2alert(' num 1是否等于num2:'是否等于');

是的,我们可以用===all equals。不仅要比较数值,还要比较类型。

第三,句子。

For-in语句

for循环语句使用得更多,而for-in语句在平时可能使用得更少。(for-in循环应该用于遍历非数组对象,使用for-in循环也称为“枚举”。)

示例:

Var obj={id:2,name: '张三' };var str=For(o in obj){ str='属性:' o '值:' obj[o]' ';} alert(str);

标签声明

感觉像C#里的goto,但是不一样。

我们有没有试过在多个循环嵌套中跳出第二个循环?一般只能用break或continue跳出最里面的循环,或者用return跳出整个函数。没想到,还有一个label语句可以跳出任何层循环。示例:

var num=0;outmost : for(var I=0;i 10I){ for(var j=0;歼10;j ) { if (i==5 j==5) {断开最外层;} num} } alert(num);//55

好了,第一篇文章差不多结束了。最后,我会给大家一些有趣的话题。

1.为什么1=0.999999999.2.为什么要警惕(0.1 0.2)//0.3000000000004。3.为什么警惕(0123 4)//87。

四个,

var obj 1={ };Obj1.name2='张三';var str1=' testStr1.name2='李四';alert(obj 1 . name 2 ' ' ST R1 . name 2);//弹出值是多少?

五、

var obj 1={ name 2: ' 111 ' };var obj2=obj1obj 1 . name 2=' 222 ';alert(obj 2 . name 2);//这里弹出了什么?obj 1={ name 2: ' 333 ' };alert(obj 2 . name 2);//这里弹出了什么?

六个,

var fun=function(num 1){ if(num 1=1){ return 1;} else { return num 1 * fun(num 1-1);} } var fun2=funfun=function(){ return 1;} alert(fun 2(5));//这里弹出了什么?

还有一段时间介绍JavaScript的基本数据类型。

JavaScript有六种基本数据类型:数字/字符串/布尔/对象/函数/未定义。

2.1数字类型

类型号用于存储数值,描述64位浮点数值。但是,Javascript不能表示0-2e64之间的所有值,因为它还需要表示非整数,包括复数和分数。对于64位,需要11位来存储数字的小数部分,1位用来表示正和负,所以JavaScript实际上可以表示-2e52到2e52之间的值。

2.2字符串类型

字符串类型用于表示文本,可以包含在单引号或双引号中。引号中的任何符号都将被视为字符串,但特殊符号可能需要转义。

2.3布尔类型。

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

我们可以在表达式中包含多个条件,这些条件可以是and或NOR的关系。计算时优先级如下:| |优先级最低,其次是比较运算符,最后是其他运算符(例如!)。

像许多其他语言一样,对于,当前一个条件为假时,后一个条件不再计算;对于| |,当前一个条件为真时,后一个条件不再计算。

请看下面的例子:

function condition TeSt(){ var a=;var b=;var c={ ' key ' : ' old ' };print(c[' key ']);if(a==)print(' a=');if(a==b==)print(' a==b==');if(a==| | change value(c))print(c[' key ']);if(a==change value(c))print(c[' key ']);} function change value(obj){ obj[' key ']=' changed ';返回真;}其输出结果如下:

olda=1a==1b==1 ldchanged可以看出,在使用| |时没有调用changeValue方法。

2.4未定义类型。

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

风险值b;印刷品(b);

在Javascript中,还有另一个类似于undefined的值:null。Undefined表示“已声明但未复制的变量”,null表示“已分配但为空的变量”。需要注意的是,undefined==null的值为真。

2.5类型转换。

如上所述,undefined==null的值为true,但是当我们使用typeof操作时,我们可以发现null是对象类型,这表明在比较过程中,发生了类型转换。

类型转换是指将一种类型的值转换为另一种类型的值。当我们使用==进行比较时,会有类型转换。我们可以使用===来禁止类型转换。

请看下面的例子:

函数converttyptest(){ var a=;var b=print(' a : ' a);print(' b : ' b);print(' a :的类型' a的类型);print(' b :的类型' b的类型);print(' a==b : '(a==b));print(' a===b : '(a===b));打印(' a===数字(b):' (a===数字(b)));打印('字符串(a)===b: '(字符串(a)===b));print(' undefined :类型' undefined类型);print(' type of null : ' type of null);print(' undefined==null : '(undefined==null));print(' undefined===null : '(undefined===null));}输出结果如下:

a :1 b:1 a :的类型b :字符串的类型==b:字符串===b:假声===数字(b:字符串(a)==b :未定义的TrueType :未定义的类型Null :对象未定义==Null 3360 True Undefined==Null : False您可以清楚地看到==和====之间的区别。

版权声明:带领大家学习javascript基础章节(1)的基本概念是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。