`
linvar
  • 浏览: 258894 次
  • 性别: Icon_minigender_1
  • 来自: 未定
社区版块
存档分类
最新评论

javascrIpt 之说

阅读更多
javascript 运行在宿主环境里,主要是浏览器这个宿主环境,也就是浏览器是javascript的解释器.每个浏览器有不同的实现, 实现标准是1999年通过的ECMAScript edition 3(javascript 1.5/1.6).
正在开发的ECMAScript edition 4(javascript2.0).
实现得最接近标准的是firefox浏览器,最差的当然是IE了.

1.javascript的变量类型:
    * Number
    * String
    * Boolean
    * Object
          o Function
          o Array
          o Date
          o RegExp
          o Math
    * Null
    * Undefined

(1).Number are "double-precision 64-bit format IEEE 754 values",在javascript中没有所谓的integer类型,浮点数运算也会出现不精确,很长的結果.
使用全局方法parseInt(str,base)可以将字符串转化为数字,
如果str不可转化为数字,返回特殊值NaN

(2).String 是Unicode字符序列

(3). Null,undefined的区别, null 是指变量没有值. 而undefined是指定义了变量,但是没有赋值,没有类型
var obj = null;
var name; //name is undefined


2. 变量的另类赋值方式
var name = obj && obj.name; //先判断obj是否为null,
var name = otherName || 'default'; //如果otherName为false,则使用默认值

3. javascript的对象
javascript 是prototype-based的面向对象语言,而不像如java那种class-based.
JavaScript objects are simply collections of name-value pairs.
就像是java中的HashMap
定义方式:
var obj = new Object();
或者更简便的
var obj = {};
直接使用obj定义属性:
obj.name = 'helo';
or
obj['name'] = 'helo';

也可以直接在{}中定义
var obj = {
   name:'helo',
   detail: {color:'red'}
}

4.Array
var arr = new Array();
or
var arr = [];
arr[0] = 'hel';
arr[1] = 'tow';
遍历数组
for(var i = 0; i < items.length; i++_)
for(var i = 0, len=items.length; i < len; i++)
for(var i in items)

5. Function
函数的定义
function add(a, b) {
}
调用的时候参数个数可以跟function定义的不一样
函数体里有一个特殊的变量 arguments, 数组类型.
可以在函数体里访问到传到函数的参数

函数是对象,所以他也有属性跟方法,如
add.apply(), add.call()
arguments.callee会记录当前函数被调用的次数

6.用户自定义对象
function makePerson(name) {
    return {name:name,
            add: function(){}
    }
}
对象的prototype属性
Person.prototype.sub = function(){
     return this.name;
};
之后Person的所有对象都有sub方法, this代表当前对象
也可以对内置对象增加方法
String.prototype.reverse = function(){
    var r = "";
    for (var i = this.length - 1; i >= 0; i--) {
        r += this[i];
    }
    return r;
}

7.inner function
定义在function内部的方法,
function betterExampleNeeded() {
    var a = 1;
    function oneMoreThanA() {
        return a + 1;
    }
    return oneMoreThanA();
}

8.closure
function makeAdder(a) {
    return function(b) {
        return a + b;
    }
}

closure 与 inner function的区别是 closure返回的是新方法,outer function被引用了,调用完之后如果赋值给变量,则外部函数的作用域还存在,


9.memery leak
An unfortunate side effect of closures is that they make it trivially easy to leak memory in Internet Explorer. JavaScript is a garbage collected language - objects are allocated memory upon their creation and that memory is reclaimed by the browser when no references to an object remain. Objects provided by the host environment are handled by that environment.

Browser hosts need to manage a large number of objects representing the HTML page being presented - the objects of the DOM. It is up to the browser to manage the allocation and recovery of these.

Internet Explorer uses its own garbage collection scheme for this, separate from the mechanism used by JavaScript. It is the interaction between the two that can cause memory leaks.

分享到:
评论

相关推荐

    JavaScript之Math对象(源代码)

    JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象...

    JavaScript之函数(ppt)

    JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数(ppt)JavaScript之函数...

    JavaScript标准参考教程

    JavaScript之所以受欢迎,主要是因为它能够操控浏览器,具备广泛的使用场景,并且学习起来相对容易。JavaScript的性能强大,它是一种开放的语言,社区支持广泛,这为开发者提供了一个良好的学习和交流环境。 ...

    head first JavaScript源码

    总的来说,《Head First JavaScript源码》涵盖了JavaScript的各个方面,从基础语法到高级特性,再到实际应用。通过阅读源码,读者不仅可以学习到理论知识,还能看到这些知识如何在实践中得以体现,这对于初学者深入...

    JavaScript语言精粹完整版

    《JavaScript语言精粹》作为一本深入浅出讲解JavaScript编程语言的经典之作,对于想要提升自己JavaScript技能的开发者来说,无疑是一份宝贵的资源。本书由Douglas Crockford所著,他不仅是JSON格式的创始人,也是...

    JavaScript JavaScript JavaScript《md说明文档》

    JavaScript JavaScript JavaScript《md说明文档》 JavaScript JavaScript JavaScript

    深入理解JavaScript系列

    本书是一本全面、深入介绍JavaScript语言的学习指南。本书共分四个部分,第1部分帮助读者快速入手,掌握基本的JavaScript编程要点;第2部分介绍JavaScript的发展和技术背景;第3部分深入探索JavaScript,介绍了语法...

    JavaScript之DOM事件(源代码)

    JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源...

    JavaScript文档

    这本书是JavaScript编程领域的一部经典之作,深入浅出地讲解了JavaScript的核心概念和技术。它涵盖了变量、数据类型、运算符、流程控制语句、函数、对象、类、模块等方面的知识,还详细介绍了错误处理、调试技巧和...

    javascript帮助文档帮助学习javascript

    综上所述,这个压缩包提供的资料对于想要学习或提升JavaScript技能的人来说是宝贵的资源。从基础语法到高级特性,从语言本身到实际应用,这些文档覆盖了JavaScript的多个方面,可以帮助学习者形成完整的知识体系。...

    JavaScript之for循环语句(源代码)

    JavaScript之for循环语句(源代码)JavaScript之for循环语句(源代码)JavaScript之for循环语句(源代码)JavaScript之for循环语句(源代码)JavaScript之for循环语句(源代码)JavaScript之for循环语句(源代码)JavaScript之...

    JavaScript基础语法(ppt)

    JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)...

    javaScript

    总结来说,JavaScript从一个简单的表单验证语言发展成为一个全面的编程语言,它的应用范围不仅限于网页浏览器,还延伸到服务器端(Node.js)、移动应用开发(Cordova、React Native)以及桌面应用(Electron)。...

    JavaScript函数(源代码)

    JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)...

    VS2015安装证书,JavaScript_ProjectSystem.msi,JavaScript_LanguageService.msi

    在这个场景中,我们关注的是VS2015的安装过程中涉及到的证书问题以及两个特定的组件:JavaScript_ProjectSystem.msi和JavaScript_LanguageService.msi。 首先,关于“VS2015安装证书”,这通常是指安装过程中需要...

    JavaScript学习指南 高清 PDF

    JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一。这份"JavaScript学习指南"高清PDF,无疑为想要深入理解JavaScript的初学者或有一定基础的开发者提供了宝贵的资源。下面,我们将深入探讨...

    javaScript经典实例

    JavaScript,作为全球最广泛使用的编程语言之一,是创建交互式网页和动态应用的关键技术。它是一种轻量级的脚本语言,主要运行在浏览器环境中,但也适用于服务器端(如Node.js)和其他平台。"JavaScript经典实例"这...

    深入理解JavaScript系列(.chm)

    深入理解JavaScript系列(6):S O L I D五大原则之单一职责SRP 深入理解JavaScript系列(7):S O L I D五大原则之开闭原则OCP 深入理解JavaScript系列(8):S O L I D五大原则之里氏替换原则LSP 深入理解...

    .NET的Javascript运行库Javascript.Net

    这个项目对于那些需要在服务器端或者桌面应用中利用JavaScript的强大功能,而又不希望引入完整的浏览器环境(如ChakraCore或JScript.NET)的开发者来说,是一个非常实用的工具。 JavaScript.Net的核心功能在于提供...

Global site tag (gtag.js) - Google Analytics