JavaScript 笔记整理(1)——基本概念

1、js区分大小写,命名开头首字母必须是字母、下划线(_)或美元符号($),其他字符可以是字母、下划线、美元符号或者数字。

2、定义的变量,未初始化,自动取得undefined的值

/*
 * 定义的变量,未初始化,自动取得undefined的值
 */
var message;     //这个变量声明后默认取得了undefined的值
alter(message)   //'undefined'
alter(age)       //报错

3、对未定义或者未初始化变量的变量执行typeof操作符会返回undefined的的值
     需要注意 typeof(null)的值为'object'(原因在第3条)


/*
 * 对未定义或者未初始化变量的变量执行typeof操作符会返回undefined的的值
 * 需要注意 typeof(null)的值为'object'
 */
var message;  
alter(typeof(message))  //'undefined'
alter(typeof(age))      //'undefined'

4、关于null,null值表示一个空对象指针,所以 typeof(null) 的值为 ‘object’ 的原因,如果定义的变量准备在将来用来保存对象,那么最好将该变量初始化为null而不是其他的值。

typeof(null) == 'object' //true

var obj = null; //obj将来是保存对象,初始化用null

5、if 语句自动执行相应的Boolean转换

/*
 *在if语句的条件判断中,number,string,object,Boolean,Undefined都是可以的
  是因为if语句自动执行了 Boolean转换 Boolean();
    
    数据类型               转换为true的值                        转换为false的值
    
    Boolean                   true                                  false
    
    String                  任何非空字符串                             0
    
    Number                  任何非零字值                             0和NaN
    
    object                    任何对象                               null
   
    Undefined                   n/a                                undefined 

 */

var msg = 'hello'
if(msg){
    alter('msg is true')
}

6、数值转换

/* 
 * 以下三个函数可以将非数值转换为数值
 * Number()、parsetInt()、parseFloat()
 * + 号 可以让纯Number字符串转为Number  +'2' === 2
 */
 Number('hello world')   //NaN
 Number("")              //0
 Number("00011")         //11
 Number('111sss')        //NaN    
 Number(true)            //1
 Number('00011.111')     //11.111

//由于Number()函数在转换字符串时候比较复杂而且不够合理
parseInt('123sss')       //123      
parseInt('sss123')       //NaN     开头是数字才行
parseInt('123sss123')    //123   
parseInt(22.5)           //22
parseInt('0xA')          //10(十六进制)

//parseFloat 类似parseInt
parseFloat(22.5)         //22.5

7、isNaN()

/*
 *isNaN() 在接收一个值后,会尝试将这个值转化为数值,比如字符串'10'或者Boolean
 *不能被转化的值会返回 true
 */

isNaN(10)         //false
isNaN('10')       //false  可以被转化成10
isNaN('hello')    //true
isNaN('10hello')  //true
isNaN(true)       //false  可以被转化成1

8、toString()  每个数值、布尔值、对象、字符串都有此方法

10.toString(10)     //报错  10.toString()”认为“.”是浮点符号,但因小数点后面的字符是非法的,所以报语法错误;
var a = 10;
a.toString()        //"10"
a.toString(2)       //"1010"  以进制输出

转型函数 String()
var b = true;
var c = null;
var d;
String(b)        //"true"
String(c)        //"null"
String(d)        //"undefined"

9、左右移  <<    >>

/*
 * 左移 << 这个操作符会将数值的所有位向左移动指定的位数,左移动会用0补充,
 */
var a = 2;    //二进制编码为10
a << 5;       //64  二进制编码为100000

10、for-in 语句,用来枚举对象的属性

//可以给循环命名
out:for(var i in window){
    document.write(i + '</br>')

    //break 打断循环
    //break out 打断命名的循环    
}

11、switch语句在比较值时使用的是全等操作符,因此不会发生类型转换(例如,字符串 '1' 不等于数值 1)

猜你喜欢

转载自blog.csdn.net/qq_37942845/article/details/87185278