【美高梅开户网址】数据类型运算符流程序调整制语句,js短路运算符

在JS函数中大家经常会选用到过不去运算符,首若是逻辑与(&&) 和 逻辑或(||)

JavaScript的数据类型

各个数据类型

  • 数值(Number):整数和消暑
  • 字符串(String):字符组成的文本(”a”、’a’)
  • 布尔值(Boolean):只有真(false)假(true)两个值
  • null:表示空值,此处的值为空
  • undefined:未赋值
  • 对象(Object):各类值的联谊

其间数值、字符串、布尔值是原本数据类型,它们是最宗旨的数据类型;对象是合成数据类型,是有多个原始数据类型和成,是3个存放各个值的器皿,对象可分为多个子类型:狭义对象(Object)、数组(array)、函数(function);undefined和null是多少个例外的值

玖、数据类型

玖、数据类型

一、逻辑与 && 的运算格局

typeof和instanceof

typeof用于再次回到一个多少的原本数据类型
【美高梅开户网址】数据类型运算符流程序调整制语句,js短路运算符。数值:typeof 1 // “number”
字符串: typeof ‘1’ // “string”
布尔: typeof true // “boolean”
函数:返回function
undefined:返回undefined
上述能够看来决断3个变量类型可以选择typeof
var a = xxx
if(typeof a === “number”){console.log(a)}

Window/{ }/[ ]/null 都返回 object
null重返object是五个历史bug,本质上是1个近似于undefined的万分值
因为typeof对 { }和[ ]都回去object所以要用instanceof去分辨
{} instanceof Array // false
[] instanceof Array // true

概念:表示近年来储存的数据的分类(表示数字 – 整数和小数)

概念:表示目前累积的数额的分类(表示数字 – 整数和小数)

var a = 5 && 6;

console.log(a); //再次来到的结果为 陆

NaN

Not a Number
它不是1种独立的数据类型,而是贰个非正规的数值,它的数据类型属于number,能够清楚为不是一个数字的数字
它和任何包涵其和好本人都不对等(===)

u  原始类型(原始值) —–【typeof运算符:剖断变量的原始类型】

u  原始类型(原始值) —–【typeof运算符:判定变量的原始类型】

1旦逻辑与运算符左边的值布尔调换后为true,那么再次回到右侧的值(不管左边的值是真依旧假)。

非数值转化为数值

Number():将字符串转化为数值不过字符串必须都以数字
parseInt():
将字符串转为整数,假使字符串尾部有空格,空格会被机关删除;如若参数不是字符串,则会先转为字符串再转变;字符串转为整数的时候,是一个个字符依次转变,如若碰到不能够转为数字的字符,就不再进行下去,重返已经转好的一些;即便字符串的第3个字符不能够转化为数字(后边跟着数字的正负号除此之外),重返NaN;注意伊始是或不是为进制的发端;并且运营调换为数值时方可有第三个参数:parseInt(‘一千’,
二) // 八 那时注意进制的平整
parseFloat():将字符串转化为浮点数,规则同parseInt,不过true/null/空字符串时
Number为数值,它为NaN

  *number(数字):表示数字                    var num1 = 拾.123;
console.log(num一);

  *number(数字):表示数字                    var num1 = 10.1②3;
console.log(num一);

var a = false && 6;

console.log(a); //再次来到的结果为 false

==和===

===时严俊意义的周旋,且不会再比较时张开数据类型转变,NaN===NaN //false
==为值十三分,相比时会调换数据类型

  • 假诺多少个值类型同样,则实施适度从紧相等的演算
  • 一旦多个值的门类不一样
  • 若果一个是null,2个是undefined,那么相等
  • 要是一个是数字,多少个是字符串,先将字符串转为数字,然后相比
  • 假使2个值是true/false则将其转为1/0相比较
  • 假如二个值是目的,2个是数字或字符串,则尝试选用valueOf和toString调换后比较
  • 别的不等于

  * NaN(不是一个数字): 全称为 Not a Number

  * NaN(不是一个数字): 全称为 Not a Number

设若逻辑与运算符左侧的值布尔调换后为false,那么重返左侧的值,但是当逻辑与的左边为 null/NaN/undefined
,结果就能够获得null/NaN/undefined。

break和continue

break 用于强制退出循环体,试行循环前边的口舌
continue 用于退出这次巡回,实践下次轮回
也能够相称label使用跳出label标识的循环体或此番巡回

  *boolean(布尔):只有true/false值              var boo = true; 
console.log(boo);

  *boolean(布尔):只有true/false值              var boo = true; 
console.log(boo);

 

void 0 和 undefined

void 会实行前面包车型客车表明式并回到
undefined,可是一些情境下undefined能够被赋值,比方函数中,那样就不能用undefined来张开推断了。所以用void
0重返undefined来拓展判断。既缩小了在原形链上寻找 window.undefined
的时日,也防止了误用被改变过的 undefined。

console.log(1+壹);//输出②,四个数字加法运算
console.log(“贰”+”肆”);//输出’二四’,七个字符串类型的做字符串拼接
console.log(二+”四”);//输出’2四’,3个是数字1个是字符串,数字转化为字符串后拼接
console.log(+”四”);//输出4,唯有3个字符串会转变来数字输出

var a = 1;
a+++a; //输出三,驾驭为(a++)+
a,++运算符比+运算优先级更加高,a++结果为一,a产生了2,所以结果为1+贰=三。
typeof
a+2;//输出”number二”,typeof的先行级高于+运算,所以输出字符串number,字符串与数字相加时,数字转换为字符串,然后字符串拼接就产生”number2″

var a = 1;
var b = 3;
console.log( a+++b );//输出4,(a++)+b

数组的方便人民群众
var arr = [3,4,5]
for (var i = 0; i < arr.length; i++){console.log(arr[i]*arr[i])}

for…in的便利

var obj = {
name: ‘hunger’,
sex: ‘male’,
age: 28
}
for(var key in obj){console.log(key+”:”+obj[key])}

var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)
((typeof a )+ b)
typeof优先级高所以右边为”number二”,短路或左边为true则为true左侧不施行,将”number贰”赋值给val

var d = 5;
var data = d ==5 && console.log(‘bb’)
console.log(data)
(d ==5 )&& console.log(‘bb’)
d==5为true,实践左侧打字与印刷bb,&&再次回到第1个布尔值为false的值若是未有,则赶回最终二个,左边的值为undefined

var data2 = d = 0 || console.log(‘haha’)
console.log(data2)
0为false则试行左侧打字与印刷haha并重返undefined赋给d,d为undefined赋给data二

var x = !!”Hello” + (!”world”, !!”from here!!”);
console.log(x)
false为0,treu为1 ,逗号运算符返还前面包车型地铁值所感觉2

&& 重返第3个 布尔值为false 的值 倘使未有 则重回最终贰个
|| 重返第叁个 布尔值为 true 的值 借使未有 则再次来到最终贰个

*undefined:唯有1个值undefined  [变量只定义,不赋值]  
变量之间赋值为undefined

*undefined:唯有一个值undefined  [变量只定义,不赋值]  
变量之间赋值为undefined

二、逻辑或 || 的运算格局

  *null  成效:财富自由                       var n二=null;

  *null  功效:财富自由                       var n贰=null;

var a = false || 6;

console.log(a); //重临的结果为 陆

u 引用类型        —–【instanceof运算符:决断变量的引用类型】

u 引用类型        —–【instanceof运算符:剖断变量的引用类型】

要是逻辑或运算符左侧的值布尔转换后为false,那么再次来到右侧的值(不管右侧的值是真如故假)。

  * Number:new Number(数字)                    var num1 = new
Number(200);

  * Number:new Number(数字)                    var num1 = new
Number(200);

 

  * String: new String(字符串)                    var str2 = new
String(‘hello’);

  * String: new String(字符串)                    var str2 = new
String(‘hello’);

var a = true || 6;

console.log(a); //再次回到的结果为 true

  * Boolean:new Boolean(true/false )               var boo3 = new
Boolean(true);

  * Boolean:new Boolean(true/false )               var boo3 = new
Boolean(true);

假如逻辑或运算符右边的值布尔调换后为true,那么重回左侧的值,假如多个操作数都以是null(NaN/undefined),再次来到null(NaN/undefined)

十、类型转变

10、类型调换

 

u 隐式类型调换

u 隐式类型转变

 

  • Ø 调换到字符串类型【num + ‘ ‘  boo + ‘ ‘】格式:var result1 =
    num + ‘ ‘; 结果: ‘数字’ ‘文本’
  • Ø 转换来数字类型  【+str  +boo】       格式:var result2 =
    +str;   
  • Ø 调换到字符串类型【num + ‘ ‘  boo + ‘ ‘】格式:var result1 =
    num + ‘ ‘; 结果: ‘数字’ ‘文本’
  • Ø 调换来数字类型  【+str  +boo】       格式:var result2 =
    +str;   

 

*布尔类型:  true => 1;  false => 0

*布尔类型:  true => 1;  false => 0

*字符串类型:数字‘  => 数字 ;    文本内容‘ 
=>  NaN

*字符串类型:数字‘  => 数字 ;    文件内容‘ 
=>  NaN

  附NaN:

  附NaN:

  console.log(isNaN(10)); // 输出false(拾是一个数值)

  console.log(isNaN(十)); // 输出false(10是3个数值)

console.log(isNaN(“10”)); // 输出false(能够被转变来数值 十)

console.log(isNaN(“十”)); // 输出false(能够被调换来数值 10)

console.log(isNaN(“blue”)); // 输出true(无法转变到数值)

console.log(isNaN(“blue”)); // 输出true(不能转变来数值)

console.log(isNaN(true)); // 输出false(能够被调换到数值 一)

console.log(isNaN(true)); // 输出false(能够被转变到数值 一)

  • 转换到布尔类型  【!!num   !!str】   格式:var result3 = !!num;
  • 转变到布尔类型  【!!num   !!str】   格式:var result3 = !!num;

* number类型:0、NaN => false;    非0 => true

* number类型:0、NaN => false;    非0 => true

* string类型: 空字符串 => false;   非空字符串 => true

* string类型: 空字符串 => false;   非空字符串 => true

*undefined:=> false;

*undefined:=> false;

*null:=> false

*null:=> false

【返回undefined】:

【返回undefined】:

访问未修改的变量undefined;   访问不存在的性质;   任何棉被服装置为 undefined
值的变量

走访未修改的变量undefined;   访问不存在的质量;   任何被设置为 undefined
值的变量

从不定义return表明式的函数隐式;   return 表明式未有显式的归来任何内容

尚未定义return表明式的函数隐式;   return 表达式未有显式的归来任何内容

u 显式类型转换

u 显式类型转换

(1)构造函数格局

(一)构造函数方式

² Number( )

² Number( )

var result1 = Number(str);     var result2 = Number(boo);

var result1 = Number(str);     var result2 = Number(boo);

²  String( )

²  String( )

     var result1 = String(num1);     var result2 = String(boo2);

     var result1 = String(num1);     var result2 = String(boo2);

²  Boolean( )

²  Boolean( )

     var result1 = Boolean(num1);   var result2 = Boolean(str2);

     var result1 = Boolean(num1);   var result2 = Boolean(str2);

(二)转变方法

(二)转换方法

u  toString( ) – 调换为字符串

u  toString( ) – 转变为字符串

 var result1 = num1.toString( );  var result2 = boo2.toString( );      

 var result1 = num1.toString( );  var result2 = boo2.toString( );      

u  parseInt( ) – 调换为数字的平头

u  parseInt( ) – 调换为数字的平头

     var result1 = parseInt(str3);     var result2 = parseInt(boo4);

     var result1 = parseInt(str3);     var result2 = parseInt(boo4);

*数字开头的字符串 => 前边的数字。   *非数字开首的字符串
=> NaN。

*数字初阶的字符串 => 后面包车型大巴数字。   *非数字先导的字符串
=> NaN。

u  parseFloat( ) – 调换为数字的小数

u  parseFloat( ) – 调换为数字的小数

     var result3 = parseFloat(str5);     var result4 = parseFloat(boo6);

     var result3 = parseFloat(str5);     var result4 = parseFloat(boo6);

附:调换包涵数字和字符的字符串        [parseInt( )或者parseFloat(
)方法]

附:调换包罗数字和字符的字符串        [parseInt( )或者parseFloat(
)方法]

  eg:  var str = ’10str’;

  eg:  var str = ’10str’;

      var result1 = parseInt(str);   //10       var result2 =
parseFloat(str);  //10

      var result1 = parseInt(str);   //10       var result2 =
parseFloat(str);  //10

12、运算符

12、运算符

u    算数运算符

u    算数运算符

² number [+*/、% ]

² number [+*/、% ]

注:% 求余,A % B = 获得的平底部位,且正负号取决于A的正负

注:% 求余,A % B = 获得的平尾部位,且正负号取决于A的正负

² string + number   ==>  【string + string】类型   结果:‘ ’

² string + number   ==>  【string + string】类型   结果:‘ ’

² string + boolean   ==>  【string + string】类型   结果:‘ ’

² string + boolean   ==>  【string + string】类型   结果:‘ ’

注:加号 – 不是表示加法总括,而是表示字符串的连接符(出现string类型
-拼串)

注:加号 – 不是意味加法总结,而是表示字符串的连接符(出现string类型
-拼串)

★3个数字类型和三个非数字字符串相减,获得的是NaN   eg:
console.log(‘hi’-3); //NaN

★2个数字类型和3个非数字字符串相减,获得的是NaN   eg:
console.log(‘hi’-3); //NaN

★一个数字类型和一个非数字字符串相除,得到的是NaN

★2个数字类型和一个非数字字符串相除,得到的是NaN

² boolean + number  ==> 【number + number】类型  举行加法总结

² boolean + number  ==> 【number + number】类型  进行加法总括

²  自增或自减运算符

²  自增或自减运算符

美高梅开户网址 1

美高梅开户网址 2

自增运算符(++) — 每一遍扩大1;   自减运算符(– –) — 每一回收缩壹

自增运算符(++) — 每一次扩张一;   自减运算符(– –) — 每一趟收缩1

前置型:自增运算符位于运算数以前。先加 壹,再赋值。

前置型:自增运算符位于运算数在此之前。先加 一,再赋值。

前置型:自增运算符位于运算数之后。先赋值,再加 一

后置型:自增运算符位于运算数之后。先赋值,再加 1

u   比较运算符

u   比较运算符

==    != 不相等   >      >=    <      <= 

==    != 不相等   >      >=    <      <= 

不等类型的相比运算符:

区别品种的可比运算符:

==   !==      数值同样,类型分裂; 只比较数值   结果:数值一样,true

==   !==      数值同样,类型差别; 只相比数值   结果:数值一样,true

=== (全等)    类型、值均1致 结果:true

=== (全等)    类型、值均1致 结果:true

!== (不全等)  品种、值有二个差异样 结果:true ;类型、值均不一致
结果:false ;

!== (不全等)  类型、值有一个不均等 结果:true ;类型、值均不均等
结果:false ;

* NaN值的相比较(NaN与自个儿不等): console.log(NaN == NaN); // false

* NaN值的可比(NaN与自己不等): console.log(NaN == NaN); // false

* isNaN( )方法:决断钦赐变量是还是不是不是1个数字  eg:  var result =
Number(‘string’);//NaN

* isNaN( )方法:判别钦定变量是或不是不是七个数字  eg:  var result =
Number(‘string’);//NaN

     
                                           console.log(isNaN(result));//true

     
                                           console.log(isNaN(result));//true

u   逻辑运算符

u   逻辑运算符

&& 与 (符号真取后;假取前)       || 或 (符号真取前;假取后)   
  

&& 与 (符号真取后;假取前)       || 或 (符号真取前;假取后)   
  

堵塞原则:

卡住原则:

&&
–&&前边为false,结果将回到&&前边的值;前边为true,结果将重回&&后边的值。

&&
–&&后边为false,结果将回到&&后边的值;前面为true,结果将再次回到&&后边的值。

|| —
||前边为false,结果都将重回||后边的值;前面为true,结果都将回来||后边的值。

|| —
||前边为false,结果都将回来||前面的值;前面为true,结果都将赶回||后面包车型地铁值。

u   赋值运算符

u   赋值运算符

A += B 即A = A + B;  A -= B 即A = A B;    A
*= B 即A = A * B;

A += B 即A = A + B;  A -= B 即A = A B;    A
*= B 即A = A * B;

A /= B 即A = A / B;  A %= B 即A = A % B;  
注:左边的频率 > 右侧的效能

美高梅开户网址 ,A /= B 即A = A / B;  A %= B 即A = A % B;  
注:左侧的效用 > 右侧的频率

u   字符串连接运算符

u   字符串连接运算符

数字+数字 ==> 加法总括;           数字+字符串  ==>
字符串拼接总括

数字+数字 ==> 加法总计;           数字+字符串  ==>
字符串拼接总结

* 运算符命名方式:

* 运算符命名格局:

1元运算符:只操作一个变量;
二元运算符:操作三个变量;长富运算符:操作四个变量

一元运算符:只操作三个变量;
贰元运算符:操作多少个变量;安慕希运算符:操作四个变量

u   条件(三元)运算符: 

u   条件(三元)运算符: 

格式: 表达式 ? 结果1:结果2;

格式: 表达式 ? 结果1:结果2;

结果为true,实行结果1;结果为false,实施结果二.

结果为true,执行结果一;结果为false,试行结果二.

同意嵌套,但嵌套的层级过多时,性能降低、可读性降低

允许嵌套,但嵌套的层级过多时,质量降低、可读性下跌

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图