码迷,mamicode.com
首页 > 编程语言 > 详细

web基础-JavaScript

时间:2018-01-04 00:16:08      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:xxx   预编译   遍历   流程   ber   表达   rip   高级   c语言   

                                              JavaScript
  JS为网页添加功能:
    1、页面的动态效果:输入的验证、页面元素的动态显示等
     JavaScript写在html页面上,由浏览器来运行
    2、服务器的交互:数据的交换--jsp、ajax
     jquery--封装好js方法
一、概述
  1、什么是Javascript?
      网页编程技术,用来向HTML页面添加交互行为
      JS是一种基于对象和事件驱动的解释性脚本语言,具有与java和C语言相类似的语法
      特点:直接嵌入HTML页面;由浏览器解释执行代码,不进行预编译
      功能:用于客户端数据的计算
         客户端表单的合法验证
         浏览器事件的触发
         网页特殊显示效果制作
  2、发展史
      JavaScript正是名称是ECMAScript,此标准由ECMA组织发展和维护
      ECMA-262是正式的JavaScript
      此标准基于JavaScript(Netscape)和JScript(Microsoft)
      -网景公司在Netscape2.0首先推出了JavaScript
      -微软公司在IE3.0开始提供对客户端JavaScript的支持,并取名为JScript
二、基础语法
  1、写法:
    <1>在元素内部和事件绑定在一起<input type="button" value="按钮" onclick="alert(‘hello java‘)">
    <2>在head标签中封装在<script language="javascript"><script>中,加语言是告知浏览器 如果不写则使用浏览器默认设置的方式
    <3>封装在JS文件中 调用时<script language="javascript" src="MyScript.js"><script> 注:W3C推荐使用type=text/javascrpt
  2、错误查看方式:FireFox错误控制台
    注意:单行注释//多行注释/* */;语句由表达式、关键字、运算符组成;大小写敏感;分号结束
  3、变量
    <1>变量的声明:var x=0;var y="hello";var z="true" 变量在声明时不确定数据类型,赋值时确定数据类型 js是一种弱类型的编程语言
  4、数据类型
    <1>基本类型:number/String/Boolean
          String:由Unnicode字符、数字、标点组成的序列
          由单引号或双引号括起--两种都可以使用,但如果外层是双引号,内层就用单引号因为便于区分
          特殊字符需要转义符\,如\n,\\,\‘,\"
          怎么表示汉字的范围只能是中文则必须用Unicode:[\u4e00-\u9fa5]
          Number:不区分整型和浮点型数值
          所有的数字都采用64位浮点格式存储,类似于double格式
        a、整型
            10进制的整数由数字的序列组成
            16进制数据前面加上0X,八进制前面加0
        b、浮点型
            使用小数点记录数据:3.4
            使用科学计数法记录数据:4.3e23
        C、boolean:多用于控制语句
      数据类型的转换:
          隐式转换:直接转--默认规则
          规则:Number+String=String
             Number+Boolan=String true变1 false变2 运算
             Boolean+String=String true/false转变为字符串类型的true/false
             Boolean+Boolean=Number 值为数字0/1
          显式转换:利用转换的函数方法--当有确定的计算要求
          规则:a、toString
             b、parseInt()
             c、parseFloat()
               默认从控制台输入的数据类型为字符串类型
             d、isNaN()--判断是不是一个数字 很常用
          typeof:判断数据的类型
    <2>特殊类型:Null--空/Undefine--未定义
    <3>复杂类型
  5、运算符:算术、逻辑、关系...
    <1>关系运算符 注意===严格相等和==的区别
            ===是指值和类型都相等
  6、流程控制:
三、常用内置对象
   什么是js对象?
        js是一种基于对象的语言
        对象是js中最重要的元素
        js中包含多种对象:内置对象、自定义对象、浏览器对象、HTML DOM对象、Active对象
  1、简单数据对象
      String:
        <1>创建字符串对象:var str1="hello world";var str2=new String("hello world");
        <2>String对象的属性:length alert(str1.length);
        <3>String对象的方法:
            toLowerCase()/toUpperCase() 大小写转换
            indexOf()/lastIndexOf() 找某个子字符的位置--从前往后找/找某个字符的位置--从后往前找
            subString(star,end) 截取字符串,不含end本身位置
            charAt(index) 返回指定下标的字符串
            charCodeAt(index) 返回字符串unicode编码
            replace(原字符,新字符) 只能替换一次
            split() 拆分字符串 返回一个数组
             操作:模拟过滤敏感字符

            function replaceString(){
                  //先获取字符串
            var str1=document.getElementById("txtString").value    
            var index=str1.indexOf("js");//设置初始值
            while(index>-1){//如果有敏感字符
                str1=str1.replace("js","*");//找到了将敏感字符替换掉
                index=str1.indexOf("js");//在新的字符串中继续找是否存在有敏感字符js,相当于迭代操作    
              }
            document.getElementById("txtString").value=str1    
            }

 


            过滤敏感字符的方法:<input type="text" onblur="replaceString()" id="txtString" />
       Number:基本类型数据的包装对象
            方法:toString():数值转换为字符串
            tofixed():数值转换为字符串,参数为指定保留的小数位数,四舍五入,不满足保留位数,补0
            如var data=53.2-->data.toFixed(2)-->53.20 常用于小数的格式化
       Boolean:
  2、组合对象
      Array:1列多个数据 js中没有集合只有数组 不需要声明初始长度直接用
        <1>写法:
          方式一 ar arr=new Array();//先声明 未初始化
          arr[0]="marry" arr[1]=true
          方式二 var arr=new Array("mary",10,true)声明+初始化
          方式三 var arr=["mary",10,true] 简写 省略new Array
          <2>属性:length获取元素个数/数组长度
        <3>数组方法:
          arr.toString()---用于遍历数组,输出数组 如10,20,21..默认是用逗号隔开的 注意是无参的
          arr.join("*") ---指定分割符*输出数组10*20*30
          arr.concat(value1,value2,...) 拼接数组 在原数组后面连接 得到新数组 原数组值不发生改变
          arr.slice(start,end)--获取子数组/截取数组 不含end位置的数组
          arr.reverse()--数组的反转
          arr.sort()--排序 默认是按字符顺序排序
            如果要实现按数值排序则要自定义个方法:
              function arrayFunc(a,b){
                return a-b;
               }
          array.sort(arrayFunc)将方法对象当做参数传入
      Math:数学计算相关的--不用创建对象 直接使用 类似于静态对象
        <1>常用属性:都是数学常数
              Math.E--自然数
              Math.PI--圆周率
              Math.LN2(in2)
              Math.LN10(in10)...
        <2>方法(了解)
              三角函数 Math.sin(x) Math.cos(x)...
              反三角函数 Math.asin(x) Math.acos(x)..
              计算函数 Math.sqrt(x) Math.log(x)..
              数值比较函数 Math.abs(x) Math.max(x,yxz..)...
              注意其中的:Math.random()--0<=Math.random()<1 小数
              Math.floor()--返回一个小于或等于指定数字的整数,也就是说往下取
              Math.ceil()--正好相反 往上取整
              案列:求3-9之间的随机整数 var s=(Math.random())*6+3--> Math.floor(s)
              可以应用在网页上某也图片的随机出现的位置,坐标生成随机数
      Date:对象
        <1>创建对象:
              var d=new Date();//当前日期和时间
              var d=new Date(2013/01/01 12:12:12);//固定日期和时间
        <2>方 法:
            分类:getxxx
                 getDay/getDate/getMonth/getFullYear...
               setxxx
                 setDay/setDate...
               toxxx--得到字符串格式的表示方法 常用于页面显示
                  toString
  3、高级对象:
      Function:函数(方法)是一组可以随时随地的运行的语句 function对象可以表示开发者的任何函数 函数实际上是功能完整的对象
      定义:略
      调用:
      Arguments对象:
        a、js中没有传统意义上的重载(方法名相同,参数列表不同),如果方法名称相同,则以最后一次定义为标准
        b、js如果要实现类似重载的效果使用关键字arguments 代表当前被传入的参数,组成了一个数组
            function m(){alert(arguments[0])}
  

    //方法的重载:
        function testMethod(){
        if(arguments.length==1){
        var data=arguments[0];
          alert(data*data);
          }
        else if(arguments.length==2){
          alert(arguments[0]+arguments[1]);
        }
      }

 


        创建方法:
          方式一:function关键字function s(参数){方法体}--推荐
            用于跟功能相关的方法
          方式二: var f =new Function("a","b","alert(a+b);");--不推荐使用
            最后一个参数是方法体,前面的其他参数是是方法的参数
          存在的需求:有些方法不需要显式存在,只是为其他方法单独使用
 

       function arraySort(){
          var array=[12,34,56,11,7];
          var f=new Function("a","b","return a-b;")//专门用于按数值排序所用
              array.sort(f);
              alert(array.toString());
        }

 


         

        //方式三:

        var f =new Function(a,b){         return a-b;//使用匿名函数           }

 


        全局函数:所有的JS对象都可以使用
           parseInt/parseFloat/isNaN...
           encodeURI():把字符串作为URI进行编码
           decodeURI():对encodeURI()函数编码过的URI进行解码
           eval:计算 var s1="1+3*5";var r =eval(s1);alert(r);//16
              计算某个字符串,以得到结果;或者执行其中的js代码

 

      RegExp:纯文本的表达式,表示某种匹配模式 在不同的语言环境下,执行后者使用正则表达式,实现文本的各种处理
            eplace(原字符,新字符);
            match()--得到匹配的结果 用数组存
            search()--得到匹配的下标 可以判断是否有敏感字符
            匹配模式:g--global 全局
            m--multilin 多行
            i--ignorance 忽略大小写
          实际应用:str1=str1.replace(/js/gi,"*") //全局替换 忽略大小写
             str1=str1.replace(/\d/g,"*") //\d表示一个数字如果表示1个或多个数字则用/\d+/
          正则表达式的应用分为两类:
            一类:和String对象的三个方法结合使用,实现对String的操作

            二类:正则表达式对象
                var r =/\d{6}/ --6位小数
                var s=/^[a-z]{3,5}$/ 意思是a-z 3-5位 从开始到结束进行匹配
                  r.test(String)--true/false 意思是指定范围是否与录入的数据匹配 --特别适合输入验证
                  验证汉字:/^[\u4e00-\u9fa5]{3}$/ 3个汉字

四、应用(重要)
   DHML--动态效果 比如浏览器浏览信息、屏幕信息等
   将整个窗口均实现对象化,结构如下:  
              window 父对象
              document---html
              screen
              history
              location
              event
              navigator
  1、window对象:
      <1>打开对话框窗口alert();是一种阻塞线程的方法 window.alert("你好");
          window.confirm("请确认")--确认询问窗口 信息提示框--返回boolean
          了解window.prompt("请输入:")--弹出一个输入的文本框 很少使用 无法对文本框的样式修改、控制
      <2>打开新窗口: 一个参数 window.open(url);--window.open("http://www.baidu.com");重复打开
          两个参数 window.open(url,"windowName")给窗口取了名字 再次点击就不会重复打开了
          三个参数 window.open(url,"windowName",conf)最后一个参数为浏览器外观设置 如宽高等...


 

web基础-JavaScript

标签:xxx   预编译   遍历   流程   ber   表达   rip   高级   c语言   

原文地址:https://www.cnblogs.com/startwalk/p/8185774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!