您的位置:首页 > Web前端 > JavaScript

【知识整理】javascript基础语法总结(2)——数据类型转换和运算符

2016-09-12 09:49 1126 查看
一.数据类型转换:(js是弱类型编程语言);

   1.声明变量时,不用考虑变量中将要存储的数据类型;

   2. 赋值时,由系统自动动态判断数据的类型;(注:因为是动态判断同一个变量,先后可保存不同类型的数据。)

   3. 运算时,js会根据自己的需要,动态转换数据类型。

二.数据类型转换分类:

   1.隐式转换:无需程序员干预,而由系统自动完成的转换;

     算数运算中的隐式转换:

       1) 默认一切转数字类型,做算数计算.( boolean类型:true转为1,false转为0);

       2)“+”法中,“+”左右只要有一个是字符串,都转为字符串,“+”变为字符串拼接;(其他类型转字符串: 在字面量前后直接加引号);

       例:boolean类型转字符串:true转为”true”

   2.强制转换:程序员主动调用专门函数完成的转换;

     1)任意类型转为字符串(String):

       (1)var str=x.toString();(null、undefined无法转为字符串)

       (2)var str=String(x);(任意类型均可以转为字符串)

     2)任意类型转为数字(Number):

       (1)var n=Number(x);(可以将纯数字字符串及其他非字符串类型转为数字使用)

            特殊:Number("")-->0

                  Number(null)-->0

                  Number([])-->0

                  Number(undefined)-->NaN

       (2)var n=parseInt(str);(将字符串转为整数时使用,如果传入的不是字符串,则先隐式转为String)

            原理:从头开始读取字符串中每个字符,跳过开头的空字符,只读取数字字符,只要碰到第一个不是数字的字符,就退出;
   例:var n = parseInt(  '12aaa'); //12

       (3)var n=parseFloat(str);(将字符串转为小数时,用法和parseInt用法完全一样,但可以识别第一个碰到的小数点。)

            例:var n = parseFloat(  '12.5aaa'); //12.5

       (4) Number( x) 与 parseInt(str)及parseFloat(str)的区别:

             Number只认识纯数字组成的字符串,但Number却可转boolean类型; parseInt(str)和parseFloat(str)认识包含非数字字符的字符串开头位置的数字,但转不了boolean类型   

     3)任意类型转为布尔类型(boolean):

       (1)var bool=Boolean(x);(除 ""   0    NaN   undefined   null 转为false外,其余都转为true)

三.表达式:由数据,变量和运算符组成的公式 ,默认情况下,从左向右,两两计算;

   1.NaN(Not a Number):“不是一个数字”的“数字(类型:Number);”

   何时遇到:当无法转为数字时,或无法正常计算时,结果都为NaN

   特点:和任何数据做计算,结果永远为NaN

   typeof(x): 返回x的数据类型名称: Number String Boolean  undefined object

   typeof(x): 可以测任意一个数据的数据类型(原始类型)

四.运算符:程序中模拟人的思维运算或判断的符号

   1)算数运算符:+、-、*、/、%、++、--(返回值只能是number,如果无法运算,返回NaN)

   2)算数运算中:默认转Number,再进行转换;(特殊:‘+’法中,碰到字符串,都转字符串,再拼接)

   3)%模运算(取余数):m%n : m/n,取除不尽的余数部分

   4)递增,递减运算:++  --;

     (1) ++n、n++: n=n+1; 将n中的值+1,后再保存回n中;(二者变量值都会增加1,但是返回值不一样,++n返回新值,n++返回旧值);

           例1: var my=10;
       var lp=my++;
console.log(lp);//10
console.log(my);//11

           例2:var my=10;
var lp=++my;
console.log(lp);//11
console.log(my);//11

   5)关系运算:>、<、>=、<=、!=、==、===用于做比较,比大小( 返回值为true或false,默认都转为数字再比较)

     (1)特殊情况:如果无法转为数字:转为NaN,NaN不等于,不大于,不小于任何值,甚至自己

     (2)isNaN(num): 专门判断一个数值是否为NaN,如果是NaN,就返回true,否则返回false

     (3)如果两个都是字符串,则从左到右按位比较每个字符的unicode号,直到可以比较出结果为止

   6)逻辑运算:多个条件(关系运算),综合得出最后的结论,只可能返回true/false;(默认转换为bool类型)

     (1)&&: 读作且,程序中称为"逻辑与"。(条件1&&条件2: 必须条件1和条件2都为true,结果为true,只要任意一个为false,结果为false)

     (2)||: 读作或,程序中称为"逻辑或"。(条件1||条件2:只要任意一个条件为true,结果为true,只有所有条件都为false,结果才为false)

     (3)!: 读作不,程序中称为"非"。(颠倒条件的true/false结果)

     (4)短路逻辑:逻辑运算中,如果前一个条件已经可以得出最终结论,则后续所有条件不再执行!

   7)赋值运算:=,将等号的右边的值保存在左边的变量中。赋值表达式也有返回值,会返回将要保存回变量的新值。

   8)扩展赋值运算+=、-=、*=、/=、%=;对变量内部的值进行修改的简写方法

      例: a=a+5等同于a+=5,表示累加。

   9)三目运算(条件运算  三元):根据不同条件,判断执行不同操作,或返回不同的值

     (1)语法:条件1?操作1:条件2;(如果条件1为true则执行操作1,否则执行操作2);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐