javaScript基础

一:JavaScript概述
      此为脚本语言,需要结合其他语言组合使用 , 不需要编译;每解释一条语句就执行一条语句  。 控制CSS的样式, 可以对表单项进行校验, 对HTML元素进行动态控制。
        安全性(没有访问系统文件权限,无法用来做木马病毒)
        交互性(JavaScript控制HTML元素)
         跨平台性(浏览器有JS的解析器,只要有浏览器就能运行JS代码,和平台无关)
二:JavaScript组成
ECMAScript    (核心):描述了JS的语法和基本对象。 
DOM    文档对象模型:处理网页内容的方法和接口
BOM    浏览器对象模型:与浏览器交互的方法和接口
三:JavaScript和HTML的结合方式
内部使用<script type=”text/javascript”>JavaScript的代码</script>
外部引用<script type=”text/javascript” src=”javascript文件路径”></script>注意:外部引用时script标签内不能有script代码,即使写了也不会执行
单行注释//
多行注释/* */
四:变量
格式:var 变量名 = 变量值;//变量名区分大小写
JavaScript中的变量声明要用var关键字(不用var声明的都是全局变量)  
变量名只有一种类型——————引用数据类型 
 变量值的数据类型分为:原始数据类型和引用数据类型
原始数据类型
string:字符串类型“”和’’都表示字符串 
boolean: 
number:数字类型, 整数、小数和NaN(Not a Number)其中 NaN!=NaN   
null:空,对象的占位符,表示引用类型的对象不存在, 一般用于进行废除对象。(即每当一个对象不用时,手动设置其为空,在函数结束或者其他情况,无用存储单元收集程序会将其回收)   
undefined:即声明变量未赋值,系统会自动赋值undefined 
        变量声明未定义:
                var str;
                alert(str);//undefined
            变量未声明就使用:
                alert(aaaccc);//报错,并且截断JAVASCRIPT代码 
特别注意:undefined==undefined  
变量值的类型可以用typeof()来判断。
例如:var  str=”aa”;alert(typeof(str));//string  
 typeof 运算符对于 null 值会返回 "Object"
现在,null 被认为是对象的占位符,但从技术上来说,它仍然是原始值  
undefined是从null派生出来的, 因此在判断时 null==undefined得到的结果是true   


        引用类型通常叫做类(.class),遇到引用值,所处理的就是对象。但从传统意义上来讲,JavaScript并无真正的类。   例如:var obj = new Object();   或者  var obj = new Object;
        Object是JavaScript中使用最多的一种类型,用来储存和传输数据
       注:instanceof可以用来判断对象是否属于某类型。返回true和false . 
字符串转换成数字:

  <script  type="text/javascript">
      var   v="123456.89";
       var  v1="123456";
       var   v2="1234a56";
       var   v3="a123456";
      // alert(parseInt(v)); //123456
      //  alert(parseFloat(v1));//123456
      // alert(parseInt(v2));//1234
      //alert(parseInt(v3));//NaN
  </script>


强制类型转换 (返回值都是原始数据类型):
Boolean(value)若value值存在或有意义,则为true;
Number(value) - 把给定的值转换成数字(可以是整数或浮点数)。
String(value) - 把给定的值按照 字面值 转换成字符串; 

五:运算符和判断符,循环
       +符号: 算术运算加, 字符串连接符, number转换符(其他类型强转number):
例如:var str = +"11";
       -符号 : 算术运算减(会把其他值强转为number类型进行减法运算), number转换符(其他类型强转number,区别于+,都是负数)
        =,+=,-=先以算术运算符规则进行运算,再进行赋值。
        ==     逻辑等。比较值,类型可以不同,例如8=="8"成立
       ===        全等。  比较值和类型。如果值和类型都相同,则为true;  
       !=        不等。比较值  
       && 逻辑与;  ||逻辑与; !非   :此三者常常和if组合使用, 最终都会强转成boolean类型。
        var val=(表达式)?value1:value2 表达式最终运算后都会强转成boolean类型
        if(表达式){}else{}中的表达式最后都会强转成boolean类型
       switch(n)
       {
         case 1:
          执行代码块 1
           break
           case 2:
           执行代码块 2
            break
            default:
            如果n即不是1也不是2,则执行此代码
               }
             Switch会对值和值的类型进行全等比较(既要比较类型又要比较值)
   传统for循环:for(var i=0;i<=8;i++){// 循环体}
高级for循环:for(var 变量 in 对象或数组){// 循环体}
区别于Java:遍历数组时,其中遍历变量代表的是数组的下标和属性。
对象.属性方式不支持动态调用。所以在FOR…IN遍历中,per.p无法取得对应属性值  
      
六:对象
Number对象 
*var num = 10;//伪对象,值是原始数据类型
*var num = new Number(10);//值是引用数据类型,如果省略构造参数,默认为0
*var num = Number(10);//强转,伪对象,值是原始数据类型 
Boolean对象 
*var flag = false;//伪对象
*var flag = new Boolean(false);//对象  引用数据类型的值   没有参数的话,默认falses
*var flag = Boolean(false); //伪对象
有意义的都是true,否则都是false
String对象
* var str = "abc";//伪对象
* var str = new String("abc");//如果省略,默认为空字符串
*var str = String("abc");//伪对象
String属性length长度 
这些对象都可以通过变量名调用valueOf()获取字面值
   <script type="text/javascript"> 
       var   v="abcdefg";
      // alert(v.charAt(0));//a
      // alert(v.concat("hig","lmn"));//abcdefghiglmn
      //alert(v.indexOf("cd",0));//2//从第0位开始搜索字符串c
      //alert(v.indexOf("cd"));//2
       var   v2="jkkkkk";
      //alert(v2.replace("k","o"));//jokkkk
      //alert(v2.replace(/k/g,"o"));//jooooo//使用正则表达式
      var   v3="abc-def-gh";
      //alert(v3.split("-"));//abc,def,gh
      //alert(v.substr(2,3));//cde//从第2位开始获取字符串,长度是3
      // alert(v.substring(2,3));//c//从第2位开始到第3-1位的字符串
      //alert(v.toLowerCase());//abcdefg//小写
      //alert(v.toUpperCase());//ABCDEFG//大写
      //以上函数都不会对原本字符串更改
   </script> 


Array数组对象
  <script  type="text/javascript">
     var   v=new  Array();//没有填充的数组位置上都是undefined
     v[5]=89;
    
     v["name"]="哈哈";//这里就属于设定数组的属性了
      v[7]="re";
     //alert(v.length);//8//注意长度不包括数组属性
     for(var  i=0;i<v.length;i++)
     {
           alert(i);//显示的是数组角标
           alert(v[i]);//显示数组元素,没有显示属性name  
     }
  </script>
  <script  type="text/javascript"  >
       var   v=new  Array(1,2,3,4,5);
       //alert(v.join("-"));//1-2-3-4-5//对原数组没有影响
       //alert(v);//1,2,3,4,5
       // alert(v.concat(67,76)+":"+v);//1,2,3,4,5,67,76:1,2,3,4,5//对原数组没有影响
       //alert(v.pop()+":"+v);//5:1,2,3,4//删除并且返回最后元素,对原数组有影响,如果数组为空返回undefined
       //alert(v.shift()+":"+v);//1:2,3,4,5//删除并返回第一个元素,对原数组有影响,如果数组为空返回undefined
       //alert(v.push(8)+":"+v);//6:1,2,3,4,5,8//在数组后面添加8,并返回数组长度
       //alert(v.unshift(8)+":"+v);//undifined:8,1,2,3,4,5//在前面添加元素,没有返回数组长度
       //  alert(v.reverse()+":"+v);//5,4,3,2,1:1,2,3,4,5//物理反转
       var   v2=new  Array(9,90,3,30); 
       //alert(v2.sort());//3,30,9,90//默认按照字典顺序排列
     
       alert(v2.sort(  function   sortNumber(a,b)//类似于java中的匿名内部类
       {
             return a-b;    
       }));//3,9,30,90//这就是自定义排序
  </script>

Date对象
  <script  type="text/javascript">
      var   v=new  Date();//获取系统当前详细时间
      //现在是2015年9月21号星期一
      //alert(v.getFullYear());//2015
      //alert(v.getMonth());//8//注意获取的月份是比实际月份要减一
      //alert(v.getDate());//21//获取一个月中的第几天
      //alert(v.getDay());//1//获取一个星期中的第几天
      //alert(v.toLocaleString());//2015年9月21日14:42:36//以当前系统时间格式显示时间
      //alert(v.setTime(85421));//以毫秒为单位设置时间
      //alert(v.getTime(85421));
      //alert(Date.parse("2015/9/21 14:42:36"));//1442817756000//按照字符串形式的时间变成对应的毫秒值,相当于静态函数
     
     //获取2015年7月1号到8月2号的天数
      var   long1=Date.parse("2015/7/1");
      var    long2=Date.parse("2015/8/2");
      //获取之间的天数/(24*60*60*1000)
      alert((long2-long1)/(24*60*60*1000));//32
  </script>

Math对象
  <script  type="text/javascript">
     //alert(Math.random());//随机产生一个0到1之间的伪随机数(不包括1)
     //alert(Math.round(67.12));//67//四舍五入
     //alert(Math.round(67.99));//68
     //alert(Math.round(-67.12));//-67
     //alert(Math.round(-67.99));//-68
     //alert(Math.ceil(67.12));//68//获取最接近的最大整数
     //alert(Math.ceil(67.99));//68//
     //alert(Math.ceil(-67.12));//-67
     //alert(Math.ceil(-67.99));//-67
     //alert(Math.floor(67.12));//67//获取最接近的最小整数
     //alert(Math.floor(67.99));//67
     //alert(Math.floor(-67.12));//-68
     //alert(Math.floor(-67.99));//-68
     
  </script>
RegExp对象
  <script  type="text/javascript">
     var   s="   ab cdefg   ";
     var   reg=/^\s*$/;//只要有空格就不可以,是较为严格的规则
     var   reg2=/\s*/;//就算有空格,只要还有其他非空格就可以
     alert(reg.test(s));//false
     alert(reg2.test(s));//true
  </script>



 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值