Javascript学习1 - Javascript中的类型对象

简介: 原文:Javascript学习1 - Javascript中的类型对象1.1关于Numbers对象.         常用的方法:number.toString() 不用具体介绍,把数字转换为字符串,相应的还有一个方法:toLocalString()                     number.
原文: 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
1 String.length    // 返回字符串的长度
2 String.charAt(s.length - 1 )   // 返回字符串某个位置的字符
3 String.substring( 1 , 4 )       // 返回字符串1~4位置的字符串
4 String.indexOf( ' a ' )        // 返回字符串第一个'a'字符的位置.

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

        ① number转化成string型:
            ●toString方法:
1 string  =  number.toString()  /   string  =  String(number);  // number转化为string的方法
2 string  =   " 0 " + number.toString( 8 );  //  八进制数字字符串
3 string  =   " 0x " + number.toString( 16 );  // 十六进制数字字符串

            ●toFixed方法:可以把一个数字转换为字符串,并且格式小数点后的位数
                toExponential方法: 使用指数表示法把一个数字转换为字符串
                toPrecision方法:使用拽定的有意义的位数来显示一个数字
1                      var  n  =   123.234 ;
2                     n.toFixed( 0 );   //  return "123.234"
3                     n.toFixed( 2 );   //  return "123.23"
4                     n.toExponential( 1 );  // return "1.23e+5"
5                     n.toPrecision( 4 );   //  return "123.2"

        ② string转化成numberg型
            ●字符串用于数字环境中,会自动转换为数字
                var n = "123"*"2"
                var n = "23"- 0;  // 只要将字符串减0就可以转换为数字型
            ●Number函数
                number = Number(string)   //把string转化为number型,但过于严格
            ●parseInt,parseFloat函数,转换不成功,返回NaN
1 number  =  parseInt( " 3 blind " )   //  Returns 3
2 number  =  parseFloat( " 3.14 meters " // returns 3.14
3 number  =  parseInt( " 3.14 " // return 3
4 number  =  parseInt( " 0xFF " // return 255

        ③ 二进制,8进制,16进制,或任何一进制数转化为字符型:
               
1 parseInt( " 111 " , 2 )    // return 8
2 parseInt( " ff " , 16 )   // 16进制数的ff转化为int型,返回为255
3 parseInt( " 077 " , 8 )   // 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对象:

      
1 var  a1  =    new  Array( " 1 " , " 2 " , " 3 " );   // new 定义
2 var  a2  =  [ " 1 " , " 2 " , " 3 " ];             // 直接定义
3 var  a3  =    new  Array( 3 );             // new 定义,并赋值
4 a3[ 0 =   1 ;a3[ 1 =   2 ;a3[ 2 =   3 ;
5 var  a4  =   new  Array();               //  new定义,不指定长度
6 img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif a4[ 0 =   1.2 ; a4[ 1 =   " javascript " ; a4[ 2 =   true ; a4[ 3 =   { x:1,y:3} ;
7 img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif var  a4  =   new  Array( 1.2 , " javascript " , true , {x:1,y:3} );  // 与以上定义同价

    1.4.2 arrays对象的方法:

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

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

    1.5.2 得到当前的日期和时间

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

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

1 var  hour  =  now.getYear(); 
2 var  month  =  now.getMonth();
3 var  day  =  now.getDay();
4 var  hour  =  now.getHours();
5 var  min  =  now.getMinutes();
6 var  time  =  now.getTime();

    1.5.4 设置时间和日期

1 var  date  =   new  Date( 2006 , 7 , 30 );
2 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                    
目录
相关文章
|
3月前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
3月前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
3月前
|
JavaScript 前端开发 开发者
如何在 JavaScript 中处理不同类型的错误?
【10月更文挑战第29天】通过对不同类型错误的准确识别和恰当处理,可以提高JavaScript程序的可靠性和稳定性,减少错误对程序运行的影响。
|
3月前
|
JSON 前端开发 JavaScript
JavaScript中对象的数据拷贝
本文介绍了JavaScript中对象数据拷贝的问题及解决方案。作者首先解释了对象赋值时地址共享导致的值同步变化现象,随后提供了五种解决方法:手动复制、`Object.assign`、扩展运算符、`JSON.stringify`与`JSON.parse`组合以及自定义深拷贝函数。每种方法都有其适用场景和局限性,文章最后鼓励读者关注作者以获取更多前端知识分享。
38 1
JavaScript中对象的数据拷贝
|
3月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
62 2
|
3月前
|
Web App开发 JavaScript 前端开发
如何学习JavaScript?
如何学习JavaScript?
67 5
|
3月前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
72 4
|
3月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
43 2
|
3月前
|
存储 JavaScript 前端开发
JavaScript学习第一章
本文档介绍了JavaScript的基础知识,包括其在网页中的作用、如何通过JavaScript动态设置HTML元素的CSS属性,以及JavaScript中的变量类型(`var`、`let`、`const`)和数据类型(基本数据类型与引用数据类型)。通过实例代码详细解释了JavaScript的核心概念,适合初学者入门学习。
67 1
|
3月前
|
JavaScript 前端开发 Java
除了 JavaScript,还有哪些编程语言支持 Set 类型
【10月更文挑战第30天】这些编程语言中的 `Set` 类型虽然在语法和具体实现细节上有所不同,但都提供了类似的集合操作功能,方便开发者在不同的编程场景中处理集合相关的数据和逻辑。

热门文章

最新文章