关于JavaScript的学习(三)——基本概念

第三章

  • ECMAScript中的一切(变量、函数名、操作符)都区分大小写。
  • 未经初始化的变量,会保存一个特殊的值——undefined。
  • 在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,但可以通过省略var操作符,从而创建一个全局变量:
funtion test(){
    message="hi";//全局变量
}
test();
alert(message);//"hi"

//不建议。给未经声明的变量赋值在严格模式下会导致抛出ReferenceError错误
  • ECMAScript中有5种简单数据类型:Undefined、Null、Boolean、Number和String。还有一种复杂数据类型——Object(本质上是由一组无序的名值对组成的)。由于ECMAScript数据类型具有动态性,没有必要再定义其他数据类型。
  • 严格模式为这门语言容易出错的地方施加了限制。
  • 当typeof操作符返回”undefined“值时,我们知道被检测的变量还没有被声明,而不是尚未初始化:
var message;//这个变量声明之后默认取得了undefined值
//下面这个变量并没有声明
//var age

alert(typeof message);  //"undefined"
alert(typeof age);      //"undefined"
  • undefined值是派生自null值的,因此ECMA-规定它们的相等性测试返回true:alert(null==undefined); //true
  • 相等操作符(==)会出于比较的目的转换其操作数。
  • 对任何数据类型的值的调用Boolean()函数,总会返回一个Boolean值,返回值取决于其实际类型:
数据类型转换为true的值转换为false的值
Booleantruefalse
String任何非空字符串“”(空字符串)
Number任何非零数字值(包括无穷大)0和NaN
Object任何对象null
Undefinedn/a(not applicable缩写,意思是不适用)undefined
  • Number转换:
var num1=Number("Hello world!");   //NaN
var num2=Number("");               //0
var num3=Number("000011");         //11
var num4=Number(true);             //1
  • parseInt转换:
var num1=parseInt("1234blue");  //1234
var num2=parseInt("");          //NaN
var num3=parseInt("0xA");       //10
var num4=parseInt(22.5);        //22
var num5=parseInt("070");       //56
var num6=parseInt("70");        //70
var num7=parseInt("0xf");       //15

var num8=parseInt("0xAF",16);   //175
var num9=parseInt("AF",16);     //175
var num10=parseInt("AF");       //NaN

var num11=parseInt("10",2);     //2(按二进制解析)
var num12=parseInt("10",8);     //8(按八进制解析)
var num13=parseInt("10",10);    //10(按十进制解析)
var num14=parseInt("10",16);    //16(按十六进制解析)
  • parseFloat转换:
var num1=parseFloat("1234blue"); //1234
var num2=parseFloat("0xA");      //0
var num3=parseFloat("22.5");     //22.5
var num4=parseFloat("22.34.5");  //22.34
var num5=parseFloat("0908.5");   //908.5
var num6=parseFloat("3.125e7");  //31250000
  • ECMAScript中没有函数签名的概念,因为其函数参数是以一个包含零或多个值的数组的形式传递的。
  • 可以向ECMAScript函数传递任意数量的参数,并且可以通过arguments对象来访问这些参数。
  • 由于不存在函数签名的特性,ECMAScript函数不能重载。通过检查传入函数中的类型和数量并作出不同的反应,可以模仿方法的重载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值