原文:Javascript学习1 - Javascript中的类型对象

1.1关于Numbers对象.

常用的方法:number.toString() 不用具体介绍,把数字转换为字符串,相应的还有一个方法:toLocalString()

                    number.toFixed(digits) 把numberl转换为小数,digits代表小数几位.

        常用的与Number对应的全局函数:isNaN(vars) 判断vars是不是数字,

        如是,返回false,如不是,返回true. 具体的意思是is Not a Number.

1.2 strin类型和String对象.Javascript中具体的类型有Numbers,Strings,Boolean,Objects,Arrays,Date类型,

因为JS是面向对象的,所以,大可以把这些类型看作一个个对象.些外,也有全局函数或相应的方法来配合这些类型对象。

String对象是常用到的一种类型对象,所以,应该熟练掌握其方法与其相关的全局函数.

    1.2.1 Strings对象的方法:



            String的所有方法参考《Javascript权威指南》P690

String.length   //返回字符串的长度String.charAt(s.length-)  //返回字符串某个位置的字符String.substring(,)      //返回字符串1~4位置的字符串String.indexOf('a')       //返回字符串第一个'a'字符的位置.

1.2.2 字符串与其它类型的转化:

① number转化成string型:

●toString方法:

string = number.toString() /  string = String(number); //number转化为string的方法string = ""+number.toString(); // 八进制数字字符串string = "0x"+number.toString(); //十六进制数字字符串

●toFixed方法:可以把一个数字转换为字符串,并且格式小数点后的位数

                toExponential方法: 使用指数表示法把一个数字转换为字符串

                toPrecision方法:使用拽定的有意义的位数来显示一个数字

                    var n = 123.234;                    n.toFixed();  // return "123.234"                    n.toFixed();  // return "123.23"                    n.toExponential(); //return "1.23e+5"                    n.toPrecision();  // return "123.2"
② string转化成numberg型

●字符串用于数字环境中,会自动转换为数字

                var n = "123"*"2"

                var n = "23"- 0;  // 只要将字符串减0就可以转换为数字型

            ●Number函数

                number = Number(string)   //把string转化为number型,但过于严格

            ●parseInt,parseFloat函数,转换不成功,返回NaN

number = parseInt("3 blind")  // Returns 3number = parseFloat("3.14 meters") //returns 3.14number = parseInt("3.14") //return 3number = parseInt("0xFF") //return 255
③ 二进制,8进制,16进制,或任何一进制数转化为字符型:

parseInt("",)   //return 8parseInt("ff",)  //16进制数的ff转化为int型,返回为255parseInt("",)  //8进制数077转化为int型,返回为63.

1.2.3 关于包装对象String

如下语句

                 var s = "there is a hat";

             s是string类型,而string类型是Javascript中的一个基本类型。

             但是,作为基本类型的s,为什么能够进行如s.length,s.indexOf对象式的操作呢?

             事实上,在Javascript中,三个关键基本数据类型(string,int,boolean)都有一个相应的对象类。简而言之,就是 Javascript不仅支持数字、字符串和布尔值这些数据类型,还支持Number,String和Boolean类。这些类是基本数据类的包装 (wrapper)。这些包装类不仅具有和基本类型一样的值,还定义了用来运算数据的属性和方法。

             以上,详细讨论见《Javascript权威指南》3.13节。

1.3 Objects对象,这种类型对象包含的东西就多了,比如document对象,windows对象,

具体到button,image,form,textfiled都是一个个objects对象,每个对象根据其不同的类型,

    都有相应的方法和函数,比如button对象,就有width,height属性.image也有width,height,border属性等.

    具体的对象可设置属性可以参考CSS,因为CSS就是设置这东西的.

1.3.1 定义:对象是已命名数据的集合。(集合这两个字非常重要)

已命名的数据通常被作为对象的属性来引用,要引用对象的属性,就必须引用这个对象,其后加.属性名,如:

        image.width / image.height

     Javascript中的对象可以作为关联数组使用,因为它能将任意的数据值和任意的字符串关联起来。所以,可以使用数组方式访问对象内的属性:

        image["width"] / image["height"]

1.3.2 创建对象

var o = new Object();

        var pattern = new RegExp("\\sajax\\s","i");

1.3.3 对象转换

当一个非空对象转换成Boolean类型时,转换为true.

        当一个对象转换为字符串时,会调用对象的toString()方法

        当一个对象转换为数值时,首先调用ValueOf()方法,如果ValueOf()返回的是对象自己,则调用toString(),再把字符串转换成数值。

1.4 arrays对象.

这种类型对象有其固有的方法和属性,应熟练掌握之,因为用到的场合比较多.

1.4.1 创建arrays对象:

var a1 =  new Array("","","");  //new 定义var a2 = ["","",""];            //直接定义var a3 =  new Array();            //new 定义,并赋值a3[] = ;a3[] = ;a3[] = ;var a4 = new Array();              // new定义,不指定长度a4[] = 1.2; a4[] = "javascript"; a4[] = true; a4[] = { x:,y:};var a4 = new Array(1.2,"javascript",true,{x:,y:}); //与以上定义同价

1.4.2 arrays对象的方法:

 1var a = [,,,,,,,];
 2var numlen = a.length  //获得数组的长度
 3var c = a.concat(b)   //a数组和b数组合并
 4var joinArr = a.join("-"); //数组用什么方式组合,组合后返回一个字符串,这里返回的是"1-2-3-4-5-6-7-8"
 5a.pop()         //数组从最后位置弹出一项
 6a.push("",""),  //数组从栈顶压入两项数值
 7a.shift()/a.unshift(val1,[val2..])    //跟pop()和push()为一对,只不过插入和弹出的位置不一样,一个是尾部,一个是首部.
 8a.reverse();        //reverse() 返转数组,会改变数组
 9var sa = a.slice(,);   //sa = [2,3] 剪切某数组,从begin开始,直到end之前一个.前切的数组作为返回值
a.splice(,,,); //a为[1,2,3,67,68,4,5,6,7,8]
a.splice(,,);    //a为[1,2,3,67,7,8]
Code
var a = [,,,,,,,];
var numlen = a.length  //获得数组的长度
var c = a.concat(b)   //a数组和b数组合并
var joinArr = a.join("-"); //数组用什么方式组合,组合后返回一个字符串,这里返回的是"1-2-3-4-5-6-7-8"
a.pop()         //数组从最后位置弹出一项
a.push("",""),  //数组从栈顶压入两项数值
a.shift()/a.unshift(val1,[val2..])    //跟pop()和push()为一对,只不过插入和弹出的位置不一样,一个是尾部,一个是首部.
a.reverse();        //reverse() 返转数组,会改变数组
var sa = a.slice(,);   //sa = [2,3] 剪切某数组,从begin开始,直到end之前一个.前切的数组作为返回值
a.splice(,,,); //a为[1,2,3,67,68,4,5,6,7,8]
a.splice(,,);    //a为[1,2,3,67,7,8]

注://splice(index,howMany,[val1,[val2..]])  //在数组的某地方(index)插入(或替代)多少个(howMany)值(val1,val2..);

        a.toString()   //返回a的字符串 

        arrays对象有关的全局函数

        //sort(compareFunction)   //数组按sortFun规定的方式来排序

1.5 Date对象

与日期相关的类型对象.

1.5.1 定义Date对象:

var now = new Date();
var date = new Date(year,month,day,hour,minutes,seconds,msc);

1.5.2 得到当前的日期和时间

var now = new Date();
var date = now.GetLocaleDateString(); //得到当前的日期
var time = now.GetLocaleTimeString(); //得到当前的时间

1.5.3 得到年,月,日,时,分,

var hour = now.getYear(); 
var month = now.getMonth();
var day = now.getDay();
var hour = now.getHours();
var min = now.getMinutes();
var time = now.getTime();

1.5.4 设置时间和日期

var date = new Date(,,);
setYear(), setMonth(),setDay(),setHour(),setMinutes();

1.5.5 把字符串转化为Date

var date = Date.parse(datestr);

1.6 定义直接量

所谓直接量,即有实体,但没有变量名称。可以定义函数直接量,对象直接量,数组直接量。

1.6.1 函数直接量:

var square = new Function(x) {return x*x;}

      或var square = new Function("x","return x*x;"}

1.6.2 对象直接量

var rectangle = { upperLeft:  {x:2,y:2},

                          lowerRight: {x:4,y:4}

                        }

1.6.3 数组直接量

var a = [1.2,"javascript",true,{x:1,y:3}];

1.7 其它类型对象

1.7.1 null

null是一个特殊的值,表示“无值”,常被看作对象类型的一个特殊值,即表示“无对象”的值

        如果一个变量为null,就说明它的值不是有效的对象,数组,数字,字符串和布尔值

1.7.2 undefined

变量在以下的情况下,其值为undefined:

            ①使用一个并未声明的变量

            ②使用了已经声明但还没有赋值的变量时

            ③使用了一个并不存在的对象属性时

        虽然undefined和null值不同,但==运算符可以将两者看作相等,如:

            my.prop == null  //返回true

1.7.3 Error对象

当发生运行错误时,Javascript解释器会抛出某个类的对象。

        每个Error对象具有一个message属性,存放的是Javascript实现特定的错误消息

        预定义的错误对象有:Erorr, EvalError,RangeError,ReferenceError,SyntaxError,TypeError和URIError

Javascript学习1 - Javascript中的类型对象的更多相关文章

  1. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  2. JavaScript学习09 函数本质及Function对象深入探索

    JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念 ...

  3. Javascript学习2 - Javascript中的表达式和运算符

    原文:Javascript学习2 - Javascript中的表达式和运算符 Javascript中的运算符与C/C++中的运算符相似,但有几处不同的地方,相对于C/C++,也增加了几个不同的运算符, ...

  4. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  5. JavaScript学习13 JavaScript中的继承

    JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...

  6. JavaScript学习12 JS中定义对象的几种方式【转】

    avaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. ...

  7. 我的javascript学习之路(一)对象之基础

    做了2个多月的ajax项目,对js的学习觉得了深入了不少,把自己的一些学习的经验贴出来,希望对初学者有所帮助,也希望大家能指出我的错误之处或者不当之处. javascript 是基于对象的语言,为什么 ...

  8. JavaScript学习笔记——JS中的变量复制、参数传递和作用域链

    今天在看书的过程中,又发现了自己目前对Javascript存在的一个知识模糊点:JS的作用域链,所以就通过查资料看书对作用域链相关的内容进行了学习.今天学习笔记主要有这样几个关键字:变量.参数传递.执 ...

  9. JavaScript学习笔记(十五)——对象之Date,RegExp

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

随机推荐

  1. FusionCharts简明教程(一)---建立FusionCharts图形

    由于该项目需要的报告需要做的事情,选择FusionCharts作为一种工具. 由于该报告没有任何接触,网上有没有更具体fusionCharts课程,所以我们决定做一个彻底的研究FusionCharts ...

  2. 关于.net MVC5+EF6 网站部署的问题

    创建mvc web application,采用code first 的方式,MVC5,EF6.0 整了一个网站.开发完之后.直接publish.就这样部署到服务器上了. 在使用过程中发现,网站打开的 ...

  3. Gradle构建多模块项目(转)

    废话不多说,直接进入主题. 1. 创建项目 首先创建项目,名称为 test: mkdir test && cd test gradle init 这时候的项目结构如下: ➜ test ...

  4. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

  5. 使用python+django+twistd 开发自己的操作和维护系统的一个

    许多开源操作系统和维护系统,例nagios.zabbix.cati等等,但是,当他们得到的时间自己的个性化操作和维护需求,始终无力! 最近的一项研究python.因此,我们认为python+djang ...

  6. quick-cocos2d-x endToLua 退出会卡住

    问题: 马上赚钱,退出会出现卡住,然后清理,死界面的情况,百思不得其解,昨天在做push的时候,突然发现.在android里面弹出一个退出对话框,点击确定退出,这时候调用endtolua时,有时也会切 ...

  7. SQLSERVER存储过程语法的具体解释

    SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ]     [ { @parameter data_type }   ...

  8. RH133读书笔记(6) - Lab 6 Adding New Filesystems to the Filesystem Tree

    Lab 6 Adding New Filesystems to the Filesystem Tree Goal: Develop skills and knowlege related to par ...

  9. 创建在SQLServer 和 Oracle的 DBLINK

    dblink 当我们要跨本地数据库.訪问另外一个数据库表中的数据时,本地数据库中就必需要创建远程数据库的dblink,通过dblink本地数据库能够像訪问本地数据库一样訪问远程数据库表中的数据. 一 ...

  10. 【Hibernate步步为营】--(一对多映射)之双向关联

    上篇文章讨论了单向关联的一对多映射,在一的一端维护双向的关系这样的做法尽管能实现可是存在非常多缺陷,首先生成非常多多余的SQL语句,由于多的一端不维护关系,仅仅有一的一端维护,在进行操作时一的一端会发 ...