javascript操作符和数据类型

javascript操作符和数据类型

一、数据类型

1.undefined类型
  • undefined只有一个值就是undefined,在使用var声明但未对其加以初始化时,这个值就是undefined。
    eg
    使用typeof()时,返回值是undefined则证明该变量没有被声明
  var message;
  var age
  alert(message);//"undefined"
  typeof(age);//"undefined"
2.null类型

null也是只有一个值null,null表示空对象指针,使用typeof null 时返回值是object。

  var call = null;
  alert(typeof car);//"object"

如果定义的变量准备在将来用于保存对象,最好将该变量初始化为null。

3.布尔类型
  • 此种类型只有两种值truefalse
    调用转型函数Boolean()。可以将一个值转化为对应的Boolean值。
    eg
  var message = "hello";
  var myBoolean = Boolean(messaeg);
  alert(myBoolean);//true
4.number类型
  • 浮点数,整数,0,负数,NaN,
 var floatNum = 1.1;
  • 通过Number()函数,可以把其他类型数据转化为number类型
  • 在使用Number()时,只要字符串中出现任何一个非有效数字字符时,结果都是NaN.
  Number('12');//12
  Number('12a');//NaN
  Number(true);//1
  Number(undefined);//NaN
  Number(null);//0
  • 把引用数据类型转化为number时,先调用toString()方法,在把字符串转化为number
  Number([]);//0
  Number([12]);//12
  Number([12,23]);//NaN
  Number({name:"zhu"});//NaN

parseInt()

  1. 可以用来提取整数
    提取规则,从左向右,依次查找,直到遇到非有效数字为止。
  parseInt('12px'); //12
  parseInt('12px13'); //12
  parseInt('px12'); //NaN
  parseInt('12.5px'); //12
  1. 可以用来进行进制转换
    parseInt( string , radix)
  • string :必选,要被解析的字符串。
  • radix :可选,该值是以几进制为基数,值介于2-36之间;如果省略或为0,则以10进制为基数;如果超过2-36,则返回值是NaN。
    举个栗子
  parseInt("10"); //省略第二参数,以十进制为基数,输出为10
  parseInt("19",10); //10  10进制->10进制
  parseInt("11",2); //3   2进制->10进制
  parseInt("1f",16); //15+16  16进制->10进制

parseFloat()

  • 在parseInt基础上可以识别小数点

举个栗子

  parseFloat('12.5px');  //12.5
  parseInt('12.5px'); //12
5.object类型
  • 基本格式:var obj = {属性名:属性值 , 属性名:属性值 }
  • 每个对象都是由0到多组属性名:属性值 (键值对)组成的,且属性名不能重复

var obj = { name : “wnag” , age : 18 };

  • 获取某个属性对应的属性值有两种方法
  1. obj.name
  2. obj[ ‘name’ ] //不能忽略引号

如果属性名是数字,则直接obj[数字] 或者 obj[‘数字’]
如果操作的属性名不存在,则返回的结果是undefined

  • obj[age]obj[‘age’] 的区别
    我们先看一个栗子:
  var age = 'name';
  var obj = {name : "zhufeng", age : 18};
  obj.sex = "man";//设置新的属性,此时的obj中有了sex属性
  obj['age'] = 20; //修改属性值
  console.log(obj[age]);//输出结果是'zhufeng',obj[age] => obj['name'] => 'zhufeng'
  console.log(obj['age']);//输出结果是20,age被修改了

age : 变量名,代表的是他存储的值
‘age’ : 常量,字符串中的具体值

6.函数数据类型
  • 基本格式:function 函数名 () { 函数体 }
  • 函数是具备一定功能的方法,按照引用地址的方法来操作,之后会讲到
  function fn () {
      console.log(1+1);
  }
  fn; //只是输出函数本身
  fn();//执行函数,实现函数的功能,打印 2
  • 实参与形参
    1.形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。
    2.实参是在调用时传递给函数的参数,即传递给被调用函数的值。
    3.函数调用中发生的数据传送是单向的,即只能把实参的值传给形参,而不能把形参的值传给实参。因此,在函数调用的过程中,形参的值可以改变,而实参的值则不会变化
  function fn (n1,n2){ //此时n1,n2都是形参
     console.log(n1+n2); //输出为30
  }
  fn(10,20);//此时10,20都是实参

二、操作符

1.一元操作符

递增递减操作符(++

var age = 23;
++age;//此时age的值变成了24,同时++age等价于age = age + 1;
–age;//age = 22,

var num1 = 2;
var num2 = 20;
var num3 = num1-- +num2;//结果是22,num1–是先赋值在递减,此时的num1=1;
var num4= num + num2;//结果是21

  • 一元加和减操作符(+,-)
  • 一元加或减操作符放在数值前面

var num = 24;
num = +num; //结果依旧是24
num = -num; //-24

若对非数值应用时,该操作符会像Number()函数一样进行转换

var s1 = “01”;
var s2 = “1.2”;
var s3 = “qq”;
var s4 = false;

s1 = +s1; //1
s2 = +s2; //1.2
s3 = +s3; //NaN
s4 = +s4; //0

s1 = -s1; //-1
s2 = -s2; //-1.2
s3 = -s3; // -NaN
s4 = -s4; //0

2.位操作符

左移<< 、无符号右移>>> 、 有符号右移>>

  • << : 将数值的所有位向左移动指定的位数

var a = 2; //等于2进制的10
var b = a << 5; //等于2进制的1000000,原始值向左移动5,其余位用0补齐

  • 无符号右移:会将数值的所有32位都向右移
    对正数来说无符号右移与有符号右移相同

var old = 64; //等于二进制的1000000
var new = old >>> 5; //等于二进制的10

  • 有符号右移:将数值向右移动,但保留符号位

var old = 64; //等于二进制的1000000
var new = old >>> 5; //等于二进制的10

3.布尔操作符

逻辑非 、逻辑与 && 、逻辑或 ||

  • 逻辑与:

var result = true && false ;

逻辑与属于短路操作,一假则假,如果第一的操作数是false,则值不会是true


  • 逻辑或:

var result = true || false ;

逻辑或也是短路操作符,一真则真,若第一个操作数为真,就不会看第二个的值


  • 逻辑非:
    首先会将他的操作符转化为一个布尔值,然后在对其求反
    布尔值中只有false 、undefined、null、NaN、" " 的值是false

alert( ! “blue” ); //false
alert( ! false); //true

4.+、-、*、/、<、>、== 、===

加减乘除,与数学中的用法相同。
比较运算符返回的将是布尔类型的值。

  var num = 20;
  var num1 = 2;
  num > num1;//true

==
判断两个操作数值是否相等 ,在比较之前,会进行类型转化。

null == undefined //true
NaN ==NaN //false
1 == “1” //true

===
判断两个操作数是否相等,包括类型也要相同

“55” === 55 //false

5.条件运算符

var a = (num1>num2) ? num1 num2
如果num1>num2 成立则执行num1,若不成立则执行num2。

6.逗号运算符

使用逗号运算符可以在一条语句中执行多个操作

  var num1 = 1,
      num2 = 2,
      num3 = 3;

逗号运算符还可以进行赋值。逗号操作符总会返回表达式中的最后一项
举个栗子

  var num = {2,4,6,7,8};//num的值为8

在下次将介绍各种语句

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值