`
kongxin_520
  • 浏览: 772 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

javascript基础

阅读更多
        接触过一些javascript的知识,但是感觉总是很肤浅,从12.28开始,决定从头好好学习一下javascript,所用的参考书是《JavaScript高级程序设计》。
        以下是我在复习的过程中,感觉很重要的知识点,具体如下:
引用
ECMAScript的解释程序遇到未声明过的标识符的时候,用该变量名创建一个全局变量,并将其初始化为指定的值。

      typeof运算符
引用
对变量或值调用typeof运算符将返回下列值之一:
       "undefined",如果变量是Undefined类型;
       "boolean",如果变量是Bollean类型;
       "number",如果变量是Number类型;
       "string",如果变量是String类型;
       "object",如果变量是一种引用类型或Null类型;

你也许会问,为什么type运算符对与Null值也返回object,这实际上是JavaScript最初实现的中的一个错误,然后被ECMAScript沿用了,现在null被认为是对象的一个占位符,从而解释了这个矛盾,但从技术上讲,它仍然是原始类型。

        Undefined类型只有一个值,那就是undefined,当声明的变量未初始化时,该变量的默认值是undefined;
        Null类型也只有一个值,即null,是一个字面量,值undefined实际上是从值null派生出来的,因此ECMAScript把他们定义为相等的。
alert(null==undefined);     //output:true

        尽管这两个值是相等的,但他们的含义不同;undefined是声明了变量但是未对其初始化时赋予该变量的值,null则用于表示尚未存在的对象,如果函数或方法返回的是对象,那么找不到该对象时,则返回null;
        Number类型有三个特殊的值,Number.MAX_VALUE和Number.MIN_VALUE,他们定义了Number类型变量的边界。另外一个特殊值就是NaN,表示非数(not a number),NaN是个奇怪的特殊值,一般说来,这种情况发生在类型(String,Boolean)转换失败时。NaN的另一个奇特之处在于:它与自身不相等,这意味着下面的代码将返回false:
alert(NaN==NaN);     //output:false

        由于这种原因,我们不推荐使用NaN值本身,函数isNaN()就可以做的很好:
         alert(isNaN("blue"));     //output:true
         alert(isNaN(123));     //output:false

类型转换
(1)、转换成字符串
        ECMAScript的Boolean值,数字和字符串的原始值的有趣之处在于他们都是伪对象,这意味着他们实际上具有属性和方法,例如,字符串的长度,如下:
var color = "blue";
alert(color.length);   //output:4

引用
总而言之,三种主要的原始类型(Boolean,String,Number)都有toString()方法,ECMAScript定义所有对象都有toString()方法,无论它是伪对象,还是真的对象。

        Boolean类型的对象的toString()方法只是输出"true"和"false";
        Number类型的对象的toString方法比较特殊,有两种模式:默认模式(toString())和基模式(toString(2)、toString(8)、toString(18));默认模式无论数字是什么模式,都默认输出10进制数字,而采用基模式会输出对应的进制表示:
            var m = 10;
            var n = 10.0;
            alert(m.toString());    //output:10
            alert(n.toString());    //output:10
            var iNum = 10;
            alert(iNum.toString(2));    //output:1010
            alert(iNum.toString(8));    //output:12
            alert(iNum.toString(16));   //output:a

        对数字调用toString(10)和toString()方法,效果一样。
(2)、转换成数字
        ECMAScript提供两种把非数字的原始值转换成数字的方法,即parseInt()和parseFloat();前者把值转换成整数,后者把值转换成浮点数;只有对String类型的数据调用这两个方法,它们才会被正确执行,对其他类型都返回NaN。
引用

        对于这两个方法,在判断字符串是数字值的过程中,paraeInt()和parseFloat()都会仔细分析该字符串,paraeInt()方法会首先查看位置0处的字符,判断它是否是个有效数字,如果不是,该方法会直接返回NaN,不再继续执行其他操作。但如果该字符是个数字值,则会继续查看位置1处的字符是否是个数字值,以此类推,直到最后,这一过程会持续到发现非有效数字的字符为止,不过字符串“22.5”会被转换为22,因为对于整数来说,小数点是无效字符,举例如下:
var m = "1234blue";
alert(parseInt(m));   //output:1234
var n = "22.5";
alert(parseInt(n));   //output:22


        parseInt()方法也有基模式,可以把2进制,8进制,16进制的字符串转换成整数,基是parseInt()方法的第二个参数指定的,举例如下:
            alert(parseInt("10",2));   //output:2
            alert(parseInt("10",8));   //output:8
            alert(parseInt("10",16));  //output:10

        parseFloat()方法的用法与parseInt()方法基本上相同,特殊的是parseFloat()方法里面的字符串数值必须是10进制表示(该方法会忽略其他进制前边的0)。
(3)、强制类型转换
        使用强制类型转换可以访问特定的值,即使它是另一种类型,ECMAScript可以使用一下3中强制类型转换:
Boolean(value)——把给定值转换成boolean类型
Number(value)——把给定值转换成number类型
String(value)——把给定值转换成string类型
        用这三个函数之一进行转换,将创建一个新值,来存放由原始值转换后的新值。
        当要转换的值是至少有一个字符的字符串、非0数字和对象时,Boolean()函数将返回true;如果该值是空字符串、数字0,null、undefined,它将返回false;
            alert(Boolean("kongxin"));   //output:true
            alert(Boolean("123"));   //output:true
            alert(Boolean("new Object()"));  //output:true
            alert(Boolean(""));  //output:false
            alert(Boolean(0));   //output:false
            alert(Boolean(null));   //output:false
            alert(Boolean(undefined));   //output:false

        Number()强制转换时和parseInt()、parseFloat()大致相同,只是它转换的是整个值,而不是部分值,举例如下:
            alert(Number(false));   //output:0
            alert(Number(true));   //output:1
            alert(Number(undefined));  //output:NaN
            alert(Number(null));  //output:0
            alert(Number("5.5"));   //output:5.5
            alert(Number("5.5.6"));   //output:NaN
            alert(Number(undefined));   //output:NaN
            alert(Number(new Object()));  //output:NaN

        最后一种强制类型转换是String(),它可以把任何值转换成字符串;强制转换成字符串和调用toString()方法唯一不同的是:对null值和undefined值强制类型转换,可以生成字符串,而不会错误:
            alert(String(null));    //null
            alert(String(undefined));     //undefined
            alert(null.toString());     //没有输出
            alert(undefined.toString());    //没有输出
分享到:
评论
3 楼 hyj1254 2010-01-05  
不知道跟犀牛书比起来怎么样,如果有必要这本也看看。
2 楼 meible2007 2009-12-30  
呵呵,楼主跟我一样啊,我这几天也在看这本书!牛B牛B得紧啊
1 楼 creasure 2009-12-29  
不错,很精辟

相关推荐

    JavaScript基础语法(ppt)

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

    JavaScript基础教程(第8版) 高清版 mobi

    《javascript基础教程(第8版)》循序渐进地讲述了javascript 及相关的css、dom、ajax、jquery 等技术。书中从javascript 语言基础开始,分别讨论了图像、框架、浏览器窗口、表单、正则表达式、用户事件和cookie,并...

    JavaScript基础教程(pdf版)

    本教程旨在为初学者提供一个全面的JavaScript基础知识学习平台,帮助理解并掌握这种强大的脚本语言。 《JavaScript基础教程》首先会介绍JavaScript的历史背景和基本语法,包括变量、数据类型、操作符、流程控制...

    javascript基础语法总结.pdf

    这个资源是javaScript基础语法的总结,适合学完javascript基础语法的进行巩固、复习! 这...我是想免费给大家看的,这怎么还收费

    JavaScript基础知识例子

    总的来说,这个压缩包提供了一个全面的JavaScript基础知识教程,涵盖了数据类型、Object、内置对象和变量等核心概念,对于初学者或者需要巩固基础的开发者来说,是一份非常有价值的参考资料。通过学习这些内容,可以...

    JavaScript基础与案例开发详解/于坤, 周大庆编著

    《JavaScript基础与案例开发详解》根据JavaScript在各种类型的应用开发中(如B2B、B2C、C2C)的使用情况,有针对性地安排了丰富的案例,从基本的表格操作、表单操作,到构建浏览器端的富文本编辑器,再到实现像Windows...

    JavaScript基础知识总结

    JavaScript 基础教程 JavaScript 是一种广泛应用于网页和网络应用的轻量级编程语言,它主要用于增强网页的交互性和动态功能。JavaScript 能够直接嵌入 HTML 页面中,为设计师提供了一种无需深入编程就能实现动态...

    JavaScript基础与案例开发详解

    资源名称:Javascript基础与案例开发详解内容简介:《Java script基础与案例开发详解》根据Javascript在各种类型的应用开发中(如B2B、B2C、C2C)的使用情况,有针对性地安排了丰富的案例,从基本的...

    javascript基础教程 从入门到精通

    javascript 基础 教程 入门 精通 javascript 基础 教程 入门 精通 javascript 基础 教程 入门 精通 javascript 基础 教程 入门 精通 javascript 基础 教程 入门 精通 javascript 基础 教程 入门 精通 javascript ...

    Javascript基础.xmind

    JavaScript基础三天总结

    JAVASCRIPT基础手册.rar

    本“JavaScript基础手册”旨在帮助初学者全面掌握JavaScript的核心概念和技术。 JavaScript语法基于ECMAScript规范,它包括变量、数据类型(如字符串、数字、布尔值、null、undefined、对象和数组)、运算符(算术...

    Javascript基础教程版

    这个"Javascript基础教程版"涵盖了JavaScript的核心概念,旨在为初学者提供一个清晰的学习路径。 在JavaScript的基础教程中,你将首先了解它的历史背景和应用领域,然后深入到语法层面。JavaScript语法基于...

    JavaScript基础大全 (1-4) 学习必备珍藏品

    这个名为"JavaScript基础大全 (1-4) 学习必备珍藏品"的资源显然是一个系列教程,包含了从初级到进阶的JavaScript基础知识。让我们深入探讨一下JavaScript的核心概念和技术。 1. **基础语法**:JavaScript是一种...

    javascript基础视频80集11

    本资源“javascript基础视频80集11”包含了80个视频教程,覆盖了JavaScript的基础概念到高级特性,适合初学者进行系统学习。 在JavaScript的基础阶段,通常会涉及以下知识点: 1. **变量与数据类型**:JavaScript...

    Javascript基础教程 文字版 代码可复制

    ### JavaScript基础教程核心知识点概述 #### 一、JavaScript简介与特性 - **JavaScript的作用**:JavaScript主要用于增强网页的交互性和动态效果,使网页能够实时响应用户的操作,提高用户体验。 - **减少HTML重复*...

    javascript基础视频80集8

    本套“JavaScript基础视频80集8”将深入浅出地介绍这一语言的基础知识,帮助初学者建立坚实的编程基础。 视频内容可能涵盖以下几个方面: 1. **变量与数据类型**:JavaScript支持多种数据类型,包括基本类型(如...

    JavaScript基础与实例教程

    本教程“JavaScript基础与实例教程”由中国电力出版社出版,旨在为初学者和有经验的开发者提供一个深入理解JavaScript核心概念和实践技巧的平台。 首先,JavaScript的核心概念包括变量、数据类型和操作符。变量是...

    JavaScript基础教程(.PDF)

    这个“JavaScript基础教程”PDF文件是初学者掌握JavaScript语法和概念的理想资源。下面,我们将深入探讨JavaScript的核心知识,包括变量、数据类型、控制流、函数、对象、数组、DOM操作以及事件处理等。 1. **变量...

    javaScript基础版与源码大全

    在这个"JavaScript基础教程"中,我们将深入探讨JavaScript的核心概念和常见用法。 1. **基础语法** JavaScript的基础包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象...

Global site tag (gtag.js) - Google Analytics