Javascript DAY2

JAVASCRIPT中语句结束以分号结尾。 如果没有分号则由解析器确定语句的结尾,例如 var sum = a+b 虽然有效但是不推荐程序的可读性也不好

JAVASCRIPT中的代码块用{}括起来例如 if(true){ },虽然当if 后面只有一条语句的时候可以不加{},但是我们在任何时候都推荐加上{}程序的可读性更好

JAVASCRIPT中一很多关键字:例如

break     do instanceof(二元操作符判断一个对象是否属于另一个对象返回布尔值) typeof(一元操作符不是函数,判断变量类型)

case else new var  try catch finally default throw switch

this void while width delete(删除变量即删除引用)if  in for return debugger

保留字:

boolean  int byte char const class double goto interfacepublic

private  protected finalexport extendslong packagenative float

import  implements debuggersyschronized  supershort  statictransient volatitle

let  yield


通常模式下(也就是非严格模式下,严格模式会报错),一个变量未声明就进行赋值,那么这个变量即默认为全局变量(不管它是否在函数体内)。变量分为全局变量和局部变量,在函数体外的变量为全局变量,在函数体内的为局部变量。 全局变量全局都有效,局部变量只能在函数体内使用,出了函数就销毁,例如:

function test(){

var m = "test";

}

test()   alert(m);//错误 undefined。


function test(){

m="test"; //严格模式下会跑出ReferenceError错误

}

test(); alert(m)//正确此时的m为全部变量可以得到

虽然省略var操作符默认为全部变量,但是我们不推荐这样做,因为在局部作用域中定义全局变量很难维护


同一条语句可以定义多个变量例如:

    var a="1" ,   b="2";  而在Python中则是 a ,b=1,2;


  JAVASCRIPT中的数据类型 有 Boolean ,  String , Object,  Number, NULL , Undefined等类型。判断变量类型用typeof(操作符非函数)。

typeof(NULL) 返回的是Object类型,因为null在javascript中被认为是空的对象引用,


我们声明一个变量将来准备作为对象使用,应该是 这样的 var a = null;  变量声明未经赋值默认的初始值为undefined,所有变量必须声明初始化才能使用


未声明和未初始的变量是不一样的,未声明的变量直接拿来用是会抛出错误的,而声明过了未赋值的变量拿来用只会得到undefined,例如

alert(msg)//报错  var msg; alert(msg)//不会报错 只会取到默认值undefined, 但是他们有一个共同点, 不管是未声明 还是已声明未初始化的变量

使用typeof, 返回的值都是undefined, 例如

var msg; mg

typeof(msg) //返回undefined typeof(mg)//返回的也是undefined


实际上undefined 是由null派生的,alert(undefined==null) //返回true,虽然是这样null主要是初始化将来要作为存储对象的变量,而undefined则是

尚未初始化变量的意思。这样我们可以很好的区分二者的用途


布尔类型Boolean 只有两个值true  false, js是区分大小写的True,False只是普通的标识符并不是布尔值。对任何数据类型都可以使用Boolean() 将其转化为布尔值,

至于返回的true还是false,Js中有一套规则


对于字符串String而言,任何非空字符串都为true,Boolean(str)--.true, 如果str为空字符串“” 那么返回的为false

对于对象类型Object来说,只要除了NUll的任何对象都为true,Boolean(null)-->false


对于undefined,Boolean(undefined)--> false

对于Number来说除了0 为false, 其它全为true(包括无穷大也是true)


if(布尔表达式){

执行代码块

}

  if括号中会自动调用Boolean方法将对应对象转为Boolean值

var a = {"name":" tom"};   if(a){  return true;//进入这个方法  }else{  } ,   var a =0;    if(a){  }else{  return false;//进入该方法}



Number类型,数字类型将变量转化为数字,数值字面量有十进制,八进制,十六进制,八进制以0开头,16进制以0x开头

var a = Number(10)-->10,  var b = Number(079)-->79  因为八进制的范围是0-7,9超过范围了,所以返回十进制

Number(078)-->64, 八进制在严格模式下是无效的,会抛出js引擎错误

16进制范围0-9,A-F(即10,11,12,13,14,15)

Number(0x1f)-->=16+15=31,  在进行算术计算时,所有的八进制 16进制都会被转换成十进制

数值型范围 Number.MIN_VALUE 到 Number.MAX_VALUE


Number.NEGATIVE_INFINITY 负无穷, Number.POSITIVE_INFINITY 正无穷


浮点数float, 带有小数点至少有一位小数,由于浮点数所占的空间是整数的两倍。所以JS会不失时机的将浮点数转化为整数

例如 var a =1. ;  var a=1.0 ;这些都会被解析成整数1,对于极小或者极大的值用科学计数法e表示

 var a=0.000001 == 1e-6;   var a=35000000==3.5e7,  浮点数计算会产生摄入误差,例如0.1+0.2!=0.3 所以永远不要测试某个

特定的浮点数的值


判断数值是否在最大和最小范围的区间使用 isFinite(x) 如果在这区间返回true 否则返回false,当两个数操作的值超过JS规定

的最大范围整数 或者小于最小范围整数 会被自动转换成正无穷infity 和负无穷-infinity,且不进入下一轮计算,无穷不参与计算


NaN(not a number),当我们操作数值希望返回的数值不是 数字 就是NaN, 例如  x/0 返回NaN,在其他语言除0是会报错的。

任何涉及NaN的操作返回的都是NaN,NaN+0-->返回NaN, NaN与任何数都不相等包括它自己  NaN==NaN-->返回false










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值