`

javascript-总结

    博客分类:
  • W3C
 
阅读更多

 

JavaScript

        是一种脚本语言(脚本语言是一种轻量级的编程语言,是一条条的纯文本命令,用记事本可以看到的)。 

        是一种解释性语言(就是说,代码执行不进行预编译)。 

        不需要显式的去调用,有由数行可执行计算机代码组成。如:

                <script type="text/javascript">

                        document.write("<h1>This is a header</h1>");//代码

                        {//代码块

                        document.write("<p>This is a paragraph</p>");

                        document.write("<p>This is another paragraph</p>");

                        }

                </script>

 

脚本

  1. [script] 表演戏剧、拍摄电影等所依据的底本电影脚本

  2. [manuscript]∶书稿的底本(蓝本、话本)                

 

概念

        变量、表达式、运算符、语句、函数      

 

变量

        本地变量:函数内声明的变量。当退出该函数后,这个变量会被撤销。这种变量称为。

        全局变量:函数之外声明的变量,则页面上的所有函数都可以访问该变量。在页面关闭时变量会被撤销。

        以下值,在判断条件时均视为false

        var a1;                                        //等效于var a4 = undefined;,al的值也是undefined

       var a2 = null;

       var a3 = false;

       var a4 = undefined;

       var a5 = NaN;

        if(!a1){alert("a1 ");}

        if(!a2){alert("a2 null");}

        if(!a3){alert("a3 false");}

        if(!a4){alert("a4 undefined");}

        if(!a5){alert("a5 NaN");}

运算符

        算术运算符

        赋值运算符

        字符串的 + 运算符

        比较运算符if(age>18)中的age>18

        逻辑运算符 &&,        ||,        !

        条件运算符variablename=(condition)?value1:value2 //三目运算符

 

方法自定义的3种方式

        直接声明:

                function a(){...}

        匿名赋值:把方法的引用,赋值给符号引用

                var  f = function (x) {reurn x * x} ;  

                        //扩展1,起别名

                        var prd = {};

                        prd.f = f;

                        //扩展2,每一个对象都有个prototype类型,给对象动态添加方法

                        String.prototype.toNum = function(){

                                var reg= new RegExp(",","g");

                                return this.replace(reg,"");

                        }

                        //扩展3,在对象内部定义

                         join : function(callback) {... },

        嵌套在on*事件中的js

                onkeyup= "value=value.replace(/[\uFF00-\uFFFF]/g, ' ')

                onsubmit="return false;"即取消提交############

                <form onsubmit="submitTest();">等效于Form.prototype.onsubmit= function(){submitTest();};

                <form onsubmit="return submitTest();">等效于Form.prototype.onsubmit= function(){return submitTest();};

                //还可以写2个以上的语句

                onmouseover="alert('An onMouseOver event');return false"     

                <a href="javascript:setMenuCookie('msg');">

执行顺序

        JS 在函数执行前将整个函数的变量进行声明,无论这个变量的声明语句有没有机会执行

        function () {  

                alert(om); // 显示 undefined  //但是不报 JS 错误

                if ( false ) { var om = 'abc' ;} // 此处声明没有机会执行  

        }   

 

        JS 解析器在执行语句前会将函数声明和变量定义进行"预编译"(按<script>块、段来预编译的)

                function addB() {...}是声明,会预编译

                var addB = function addB() {...}是声明,会预编译

                var addB = function{...}是预声明,只有执行到此代码时才会编译,不会预编译。不能在它之前使用addB方法

 

        js代码只要写在<script>块里面就行,不一定非要是function结构,可以直接写语句。

 

        head中的js--->页面中的js(body标签内或body标签外都一样)-->body标签onload(加载完后的)事件中的js.

 

 

JavaScript 实现是由以下 3 个不同部分组成的:

        核心(ECMAScript) js语法及js内置对象

        文档对象模型(DOM) 

        浏览器对象模型(BOM) 

 

js可以自由使用这3类对象

        宿主对象:寄宿浏览器提供的对象:DOM,BOM

        本地对象:17个,其中Math为静态类的,Global的方法和属性直接用,不需要"对象."或"Global."

 

本地对象(大部分)都有的2个属性

        constructor      所建立对象的函数参考

        prototype       能够为对象加入的属性和方法

        function comet1(str){                //自定义的类(构造函数comet1)

                this.aaa = str

        }

        comet1.prototype.aaa = 55;                //只有通过构造函数才能用prototype,动态添加属性或方法

        var comet = {};comet.aaa=55;                //对象的话不需要prototype,直接动态添加

 

1.Date

        方法(43):

                getFullYear()     返回完整的4位年份数

                getMonth()      返回月份数(0-11)

                getDate()       返回日(1-31)

                getHours()       返回小时数(0-23)

                getMinutes()      返回分钟(0-59)

                getSeconds()      返回秒数(0-59)

                getMilliseconds() 返回毫秒(0-999)

 

2.Math        //静态类

3.Number

4.Boolean

5.String

        属性-额外:

                length      返回字符串的字符长度

 

        方法(20):

                charAt(index) 返回指定索引处的字符

                indexOf(searchString, startIndex) 返回字符串中第一个出现指定字符串的位置

                lastlndexOf(searchString, startIndex) 返回字符串中最后一个出现指定字符串的位置

                match(string)或match(regex) 在字符串中查找指定值,

                        类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

                        var str="Hello 12 world! 34 Hello 56 ok 12"

                        alert(str.match("Hello"));        //Hello

                        alert(str.match(/\d+/));        //12

                        alert(str.match(/\d+/g));        //12,34,56,12

                replace(string, newString)或replace(regex, newString)将字符串中的某些字符替换成其它字符

                        var reg= new RegExp(",","g");

                        var custFloor=regFloor.replace(reg,"");

                        var str="2010-10-19-16";

                        alert(str.replace(/-/g, "\/"));"2010/10/19/16"

                        alert(str.replace(/-/, "\/"));"2010/10-19-16"

                        alert(str.replace("-", "\/"));"2010/10-19-16"        //这个的参数是字符串,不是regex

                search(regex) 针对某执行值对字符串进行查找

                slice(startIndex, endIndex)将部分字符抽出并在新的字符串中返回剩余部分

                split(delimiter)将字符串分配为数组

                substr(startIndex, length) 从startIndex取,取length个字符

                substring(startIndex, endIndex) 从startIndex和endIndex之间的字符,不包括endIndex

                        js的substring和java的完全一致。

                toLowerCase() 把字符串中的文本变成小写

                toUpperCase() 把字符串中的文本变成大写

 

6.Array

        属性-额外的:

                index      For an array created by a regular expression match, the zero-based index of the match in the string.

                input      For an array created by a regular expression match, reflects the original string against which the regular expression was matched.

                length      获取数组元素的个数,即最大下标加1

 

        方法(13):

                concat(array1,arrayn)将两个或两个以上的数组值连接起来,合并后返回结果

                join(string) 将数组中元素合并为字符串,string为分隔符.如省略参数则直接合并,不再分隔

                pop()      移除数组中的最后一个元素并返回该元素

                push(value) 在数组的末尾加上一个或多个元素,并且返回新的数组长度值

                reverse()    颠倒数组中元素的顺序,反向排列

                shift()     移除数组中的第一个元素并返回该元素

                slice(start, deleteCount, [item1[, item2[,...[,itemN]]]]) 返从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素

                sort(compare Function) 在未指定排序号的情况下,按照元素的字母顺序排列,如果不是字符串类型则转换成字符串再排序,返回排序后的数组

                splice()     为数组删除并添加新的元素

                toSource()    显示对象的源代码

                toString()    将数组所有元素返回一个字符串,其间用逗号分隔

                unshift(value)为数组的开始部分加上一个或多个元素,并且返回该数组的新长度

                valueOf()    返回数组对象的原始值

 

7.RegExp

        创建RegExp对象的两种定义方式:

                1、var patt1=new RegExp("e","g");//new RegExp(pattern, attributes);attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m"

                        i 执行对大小写不敏感的匹配。 

                        g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 

                        m 执行多行匹配。 

                2、var patt = /^\w+$/                //直接量语法

 

        RegExp对象的方法        

                compile 编译正则表达式。用于改变 RegExp。

                                var patt1=new RegExp("e");

                                patt1.compile("d");

                exec 检索字符串中指定的值。返回找到的值,并确定其位置。 

                        var patt1=new RegExp("e","g");

                        do{

                                result=patt1.exec("The best things in life are free");

                                document.write(result);

                        }while (result!=null) 

                        由于这个字符串中 6 个 "e" 字母,代码的输出将是:eeeeeenull

                test 检索字符串中指定的值。返回 true 或 false。 

                        /\s+\w+\s+/.test("  llyu ");对

                        "/\s+\w+\s+/".test("  llyu ")错

 

8.Function

9.Object

10.Global 全局-顶层

        属性:

                Infinity     指定一个正负无穷大的数值

                NaN       指定一个 “非数字” 值

                undefined    指定一个未被赋值的变量

 

        方法:

                decodeURI()       为加密的URI进行解码

                decodeURIComponent() 为加密的URI组件解码

                encodeURI()       将字符串加密为URI

                encodeURIComponent() 将字符串加密为URI组件

                escape(string)      加密一个字符串

                unescape()        使用escape()对一个字符串进行解码

                eval(string)       判断一个字符串并将其以脚本代码的形式执行

                isFinite(number)     检测一个值是否为一个有限数字,返回True或False

                isNaN(string)      检测一个值是否不是一个有限数字

                Number()         将一个对象的值转换为一个数字

                parseFloat(string)    将一个字符串解析为一个浮点数字

                parseInt(string)     将一个字符串解析为一个整数,不是四舍五入操作,而是切尾

                String(object)      将一个对象值转换为一个字符串

                number(object)

 

11-17:Error ,EvalError ,RangeError ,ReferenceError ,SyntaxError ,TypeError ,URIError 

 

18.自定义对象:属性和方法都可以访问,没有private属性这一说。

        有初始化对象和定义构造函数的对象两种方法

        a:初始化对象,例如:

                var person = {

                        name:"tom",age:25,

                        test:function(str){

                                alert(str);

                        },

                        score:{

                                chinese:87,

                                english:91

                        }

                }

 

        b: 自定义类,例如:

                function tearcher(firstname,age){

                        this.firstname=firstname;

                        this.age=age;

                        this.test=function(str){

                                alert(str);

                        }

                }

                var person = new tearcher("kebi",33);

                alert(person.age);

                person.test("hello");

                var person = new tearcher("kebi",33);

                person[0]= "test";                                        //只将数组元素添加到一个对象中并不会使它成为数组。

 

        c:使用Object类

                personObj=new Object()

                personObj.firstname="John"

                personObj.test=function(str){

                        alert(str);

                }

                alert(personObj.firstname);

                personObj.test("hello");

 

 

1、数组直接量:

        var es = [ ] ;

        var es = [ [ 1, {x:1 , y : 2}] , [ 2, {x:3 , y : 4}] ];//二维数组,数组项中包含对象

        alert(es)                                                        //1,[object Object],2,[object Object]不输出Object ,是因为数组是一个具有额外功能层的对象.

2、数组构造

        var cars=new Array(2);                //参数,为初始化时的数组大小,数组大小可以动态自动变化

        cars[0]="BMW";                        //

        cars[1]=99;                                //类型可以不一致

        cars["a"]="aaaaaa";                        //数组length不变,cars["a"]或cars.a作为对象的属性存在

        cars.b="bbbbbb";                        //数组length不变,cars.b或cars["b"]作为对象的属性存在

 

3、数组构造直接值

        var cars=new Array(99,"Volvo","BMW");        

 

1、对象

        var cars = {bm:"宝马",bc:"奔驰"}                //cars.bm或cars["bm"]

        var cars = {"bm":"宝马","bc":"奔驰"}                //cars.bm或cars["bm"]

        cars["a"]="aaaaaa";                                //动态添加对象属性,cars["a"]或cars.a作为对象的属性存在

        cars.b="bbbbbb";                                //动态添加对象属性,cars.b或cars["b"]作为对象的属性存在

 

        var mycars ={}

        mycars["a"]="aaaaaa";                                //动态添加对象属性,cars["a"]或cars.a作为对象的属性存在

        mycars.b="bbbbbb";                                        //动态添加对象属性,cars.b或cars["b"]作为对象的属性存在

 

8, 删除数组元素和对象属性:

        数组元素

                delete a[0];        //把元素设置为undefined;数组长度不变。真正删除调用Array的方法

        对象属性

                var obj = {a:'a', b:'b'};

                var objItem = obj.a;

                delete obj.a;

                alert(objItem);//这里输出a

 

 9,键盘鼠标事件

<input type="text" onKeyUp="check(event, this)">

function check(e, ele) {

if(e.keyCode > 57 ||  e.keyCode < 48) {

ele.value = ele.value.replace(/[^0-9]/g,"");

}

分享到:
评论

相关推荐

    org.mozilla.javascript-1.7.2.jar.zip

    总结,"org.mozilla.javascript-1.7.2.jar.zip"是Mozilla Rhino引擎的一个重要版本,它在Java平台上实现了高性能的JavaScript解释和执行,为开发者提供了丰富的功能和广泛的适用场景。无论是Web开发、服务器脚本,...

    前端-javascript-基础知识-总结笔记

    个人学习javascript的笔记总结

    libsignal-protocol-javascript-example:有关“如何使用libsignal-protocol-javascript?”的示例

    libsignal-protocol-javascript示例有关“如何使用libsignal-protocol-javascript ?”的示例组件server.js index.html和scripts怎么跑使用以下节点运行服务器: node server.js 。 (我认为只需要ws ) 在浏览器中...

    Laravel开发-laravel-javascript-lang

    总结来说,"Laravel开发-laravel-javascript-lang"是一个实用的工具,它帮助开发者将Laravel的强大功能扩展到前端,实现了翻译和路由的前后端共享,从而提升了现代Web应用的开发效率和用户体验。

    JavaScript-xml-成绩管理系统

    总结来说,JavaScript-XML成绩管理系统是利用JavaScript的客户端能力,配合XML的数据组织形式,实现了一个轻量级、易维护的成绩管理工具。它展示了JavaScript在处理动态数据和用户交互方面的强大功能,以及XML作为...

    eclipse-javascript-oxygen-2-win32-x86_64.zip

    总结来说,"eclipse-javascript-oxygen-2-win32-x86_64.zip"是一个专为Windows 64位系统设计的JavaScript开发工具包,提供了一整套的开发、调试和管理功能,是JavaScript开发者高效工作的理想选择。只需简单的解压缩...

    JavaScript - JavaScript Tutorial

    - **JS Summary**:总结JavaScript的核心概念和技术要点。 #### JS示例 - **JS Examples**:提供超过200个示例代码,涵盖从简单到复杂的各种应用场景。 - **JS Objects Examples**:面向对象编程的示例,展示如何...

    JavaScript - 快速指南

    ### 总结 JavaScript 作为一种动态的编程语言,在网页开发领域占据了举足轻重的地位。它不仅能为用户提供更好的体验,还能让开发者以更低的成本创建出功能丰富且交互性强的网页应用。随着技术的不断进步,...

    javascript课程内容总结

    JavaScript 课程内容总结 JavaScript 是一种广泛应用于网页开发的编程语言,以下是 JavaScript 的基础知识点总结。 数据类型 在 JavaScript 中,数据类型包括字符串(string)、数值型(number)、布尔型...

    JavaScript-Minify-Pack-源码.rar

    8. **总结**: JavaScript-Minify-Pack 源码可能包含了实现这些功能的工具和示例,通过学习和理解这个资源包,开发者可以更好地掌握JavaScript的压缩和打包技术,从而提高项目性能,为用户提供更快的加载速度和更好...

    JavaScript - JavaScript for impatient programmers - ES2022

    ### 总结 《JavaScript for Impatient Programmers》是一本旨在帮助读者快速掌握JavaScript核心知识的书籍。通过简洁的语言和丰富的示例,作者不仅介绍了JavaScript的基本语法和高级特性,还深入探讨了语言的发展...

    JavaScript-code_sampe

    总结来说,这个压缩包“JavaScript-code_sample”很可能是针对JavaScript初学者或开发者的一个学习资源,包含了从基础到高级的JavaScript编程知识,包括但不限于数据类型、控制流、函数、对象、DOM操作、事件处理、...

    javascript基础教程-总结.docx

    它是由Netscape公司的Brendan Eich在1995年设计的,最初命名为LiveScript,后来为了与Sun Microsystems的Java语言相联系,改名为JavaScript。尽管名字相似,但JavaScript与Java并无直接关系。 JavaScript的主要特点...

    高级软件人才培训专家-day02-JavaScript-Vue

    #### 十、总结 本章节介绍了 JavaScript 的基本概念、特性和历史背景,以及如何在 HTML 中引入 JavaScript。此外,还介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符和流程控制语句等内容。最后,简单...

    VB转javascript代码帮助下载

    #### 五、总结 从VB到JavaScript的代码转换涉及到多方面的考虑,包括但不限于语法差异、对象模型的不同以及库的支持等。通过细致地分析源代码,并根据目标语言的特性进行调整,可以有效地完成这一转换过程。对于...

    Pro JavaScript-Tech中文版

    #### 五、总结 本书《Pro JavaScript》中文版不仅介绍了现代JavaScript编程的基础知识,还深入探讨了面向对象编程在JavaScript中的应用。通过实际案例,读者可以学习到如何使用面向对象的方法来构建复杂的...

    Javascript-绝对简明手册.pdf

    ### JavaScript 绝对简明手册知识点总结 #### 1. 序言 - **目的**:本文档旨在帮助读者在需要的时候快速回顾JavaScript的核心概念和技术要点。 - **编写背景**:考虑到学习过程中容易遗忘,作者希望通过简洁的方式...

    JavaScript 知识点总结(思维导图10张)

    本文将围绕“JavaScript知识点总结(思维导图10张)”进行详细解析,涵盖从基础语法到高级特性,帮助你构建完整的JavaScript知识体系。 1. **JavaScript操作符与字符** (Javascript-operational-character.gif) - ...

    ui.tabs.rar_javascript_javascript-ui_tabsui_ui

    总结,ui.tabs是利用JavaScript和UI技术实现的一种高效内容组织方式。通过理解和掌握这些核心概念,开发者可以构建出功能丰富、响应迅速且易于使用的选项卡组件,从而提升网站或应用的用户体验。

    一种客户端工具,用于对AKS群集执行自动检查以查看它是否遵循最佳实践 -JavaScript-Go-下载

    总结来说,这个项目提供了一个结合JavaScript和Go的客户端工具,用于对AKS群集进行自动化健康检查,确保它们遵循最佳操作实践。用户可以通过下载并运行这个工具,对自身的AKS集群进行诊断,以提升集群的安全性、稳定...

Global site tag (gtag.js) - Google Analytics