汉莫拉比

javascript笔记1-基本概念

关键字:

变量:

function test(){
    message = 'hi';  //不加var,表示全局变量;加var,表示局部变量
}

数据类型:

总共有五种基本数据类型:Undefined、Null、Boolean、Number、String,一种复杂数据类型:Object。

 

  • typeof 操作符,对一个值使用typeof会返回下列某个字符串:

"undefined","boolean","string","number","object","function".

下面例子弹出"string"。

var message="hello world";
alert(typeof message);

 

  • Undefined类型:该类型只有一个值:undefined。下面例子返回true:
var message;//未赋值
alert(message == undefined);

执行alert(typeof message);会弹出"undefined"。

 

  • Null类型:该类型只有一个值:null。

 

  • Boolean类型:只有两个字面值:true、false。使用Boolean将一个值转换为对应的Boolean值,比如,下面例子弹出true:
var message="Hello World";
alert(Boolean(message));

下面是这种转换的一个用途:

var message="hello world";
if(message){
    alert("你好");
}

 

  • Number类型:

浮点数值例子:0.1+0.2=?答案是:0.3000000000004,原因:浮点数值计算会产生舍入误差。

NaN:即not a number,0除以0会返回NaN。

NaN与任何值都不相等,包括它自身,即:NaN != NaN;

不能转换为数值的参数使用isNaN()函数,返回true。比如:

alert(isNaN(10));//false;
alert(isNaN('10'))//false;
alert("hello");//true;

 

数值转换:

var num1=Number("hello world");  //NaN;
var num2=Number("");//0
var num3=Number("000011");//11
var num4=Number(true);//1

Number()不常用,更常用:parseInt();

 

  • String类型:

字符字面量:

String()转换:

var value1=10;
var value2=true;
var value3=null;
var value4;
alert(String(value1));//"10"
alert(String(value2));//"true"
alert(String(value3));//"null"
alert(String(value4));//"undefined"

 

  • Object类型:

javascript的对象表示一组数据和功能的集合。

创建对象的方法:

var o = new Object();

 

Object的属性和方法:

  contructor:保存着用于创建当前对象的函数。

  hasOwnProperty(name):用于检查给定的属性在当前对象实例中是否存在。

  isProtoTypeOf(object):用以检查传入对象是否是当前对象的原型。

  propertyIsEnumerable(propertyName):检查给定的属性是否可用for-in遍历。

  toLocaleString()、toString()、valueOf().

 

操作符:

在应用于对象时:

var o = {

    valueOf : function(){
               return -1;
    } ;

o--;           

 

语句:

  if、do-while、while、for:略。

for-in举例:

for(var propName in window){
       document.write(propName);  
}

对象的属性没有顺序,遍历时没有先后。

 

break+label;continue+label:

var num = 0;
        
        outermost:
        for (var i=0; i < 10; i++) {
             for (var j=0; j < 10; j++) {
                if (i == 5 && j == 5) {
                    break outermost;//跳出outermost循环。
} num++; } } alert(num); //55
var num = 0;
        
        outermost:
        for (var i=0; i < 10; i++) {
             for (var j=0; j < 10; j++) {
                if (i == 5 && j == 5) {
                    continue outermost;//继续outermost循环,而不是继续里面的循环;
                }
                num++;
            }
        }
        
        alert(num);    //95

 

with语句(把重复的对象名称提出来,简化编程):

  with(location){
            var qs = search.substring(1);
            var hostName = hostname;      //unavailable when viewing from a local file
            var url = href;
        }

        alert(qs);
        alert(hostName);
        alert(url);

 

switch语句:

不限定为数值,非数值甚至表达式都可用:

 switch ("hello world") {
            case "hello" + " world": 
                alert("Greeting was found.");
                break;
            case "goodbye": 
                alert("Closing was found.");
                break;
            default: 
                alert("Unexpected message was found.");
        }
var num = 25;
        switch (true) {
            case num < 0: 
                alert("Less than 0.");
                break;
            case num >= 0 && num <= 10: 
                alert("Between 0 and 10.");
                break;
            case num > 10 && num <= 20: 
                alert("Between 10 and 20.");
                break;
            default: 
                alert("More than 20.");
        }

 

函数:

参数在内部是用一个数组来表示的。在函数体内,可以通过arguments对象来访问这个数组:

   alertArguments('hi');
    alertArguments('hi','hello');
    function alertArguments(){
        alert('i receive '+arguments.length+' arguments.');
        
    }

结果:先弹出接收到1个参数,再弹出接收到2个参数。

因为这个原因,javascript函数没有重载。

 

posted on 2016-01-19 22:36  搬砖的小学生  阅读(615)  评论(4编辑  收藏  举报