欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javascript1-基本概念

程序员文章站 2023-10-17 19:11:30
javascript1-基本概念 function test1(){ //alert("nihao"); //1.区分大小写...

javascript1-基本概念

function test1(){
    //alert("nihao");
    //1.区分大小写
    var test = "hello";
    var test = "world";

    //alert(test+test);
    //2.可以这样声明
    var message="hi",num=3;
    //alert(message+num);

    //3.ecma 建议采用驼峰法命名,与其源代码风格保持一致

    //4.ecma 5中基本类型:undefined,string,object,number,boolean,null

    //5.typeof 可以获取某个变量的类型
    //alert(typeof message);//string 
    //alert(typeof num);//number
    //如果没有初始化呢?
    var a;
   // alert(typeof a);//undefined
   //如果每没有声明呢?
   //alert(typeof b);//也是undefined
   //如果直接alert一个没有声明的变量 chrome没有任何反应

   //还有一个更奇葩的
   //alert(typeof null);//object null 指向一个空指针对象

   //5.boolean  true false 对的 true false 不对 true,flase  是 boolean的字面值
   //boolean 与 boolean 也不同
   //boolean flag = true; 明显中了java的毒
   var flag = true;

   var flag2 = boolean(message);
  // alert(flag2);//true 有一个转换规则对应表 可查阅

  //6.number 可整数可浮点甚至还可字符
  //可表示八进制 十六进制
  var eight = 0123;
  var sixteen = 0x3a;

  //alert(eight);//83
  //alert(sixteen);//58  弹出十进制数

  //表示范围并不是那么广 
  //nan: not a number
  //alert(4/0);//infinity  超出表示范围
  //alert(isfinite(4/0));//flase 

  //alert(isnan(23));//false  是一个数字
  //alert(isnan("23"));//可以转成一个数字
  //alert(isnan("blue"));//不能被转成数字
  //alert(isnan(blue));//没有东西输出
  //alert(isnan(true));//false 可以转成数值 

 //数值转换 number() 
    var num1 = number("hello");
    //alert(num1);//nan
    var num2 = number("11");
    //alert(num2);//11
    //alert(number("11"));

    var num3 = number(true);
    //alert(num3);//1
    //parseint() 转成整数 使用较多
    //parsefloat 转浮点 科学记数法

    //string 
    var string1 = "hello";
    //alert(string1.length);//5
    string1 = "world";
    //alert(string1); //会把之前那个销毁

    //tostring()转字符串
    //object  和 java 对象很相似
    //都一个共同的父类obejct ,这个父类还有些写好了可直接继承


    //各种操作符  和 语句先省略 以后遇到再补充吧
}

function func(){
    //alert("func");
    //函数内部 return; 意思是返回undefined,一般用在需要停止函数但是不需要返回值的情况

    //cc("hh");// hhundefined
    //相对于其他语言 ,参数管得比较宽松,声明两个参数,可以只传一个参数值
    //实际上解释器并不care你声明 调用时的参数情况,因为无论在那种情况下,都会有一个参数数组arguments
    //声明时写下参数名 只是为了程序员好辨识

    //testlength();//0
    //testlength(12);//1
    //testlength("ee",33);//2

    //mix(10,5);//20 说明还是以自定义优先的

    //函数重载 = 函数重写?
    //java 重载,用同一个函数名,只要参数类型和数量,返回值中一个以上不同,他们就是不同的函数
    //但是ecma 函数参数管理试很松的 不能用参数来定死一个函数,所以没有传统意义上的重载
    //但是可以用巧妙地方法间接实现重载,那就是在函数中判断参数的情况,根据不同参数采取不同方案

};

function cc(arg0,arg1){
    alert(arg0+arg1);
};

function cc(){//函数名可以相同  自动匹配参数 ?错! 如果遇到函数名相同的情况,以最后定义的那个为准
    alert(arguments[0]);
    //alert(arg0+arg1);
};

function testlength(){
    alert(arguments.length);
};

//自定义参数名 和 系统arguments 可以混合使用!
//他们占据不同的内存空间 不过会实时同步
function mix(arg0,arg1){
    arg1 = 10;
    alert(arguments[0]+arguments[1]);
}

window.onload = test1;
window.onload = func;