zoukankan      html  css  js  c++  java
  • JavaScript学习——JavaScript 对象 数据类型总结01

    JavaScript 对象

    JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...

    此外,JavaScript 允许自定义对象。

    所有事物都是对象

    JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有属性和方法的特殊数据类型。

    • 布尔型可以是一个对象。
    • 数字型可以是一个对象。
    • 字符串也可以是一个对象
    • 日期是一个对象
    • 数学和正则表达式也是对象
    • 数组是一个对象
    • 甚至函数也可以是对象

    对象只是一种特殊的数据。对象拥有属性方法

    访问对象的属性

    属性是与对象相关的值。

    访问对象属性的语法是:

    objectName.propertyName
    

    这个例子使用了 String 对象的 length 属性来获得字符串的长度:

    var message="Hello World!";
    var x=message.length;
    

    在以上代码执行后,x 的值将是:

    12

    访问对象的方法

    方法是能够在对象上执行的动作。

    objectName.methodName()

    例子使用了 String 对象的 toUpperCase() 方法来将文本转换为大写:

    var message="Hello world!";
    var x=message.toUpperCase();

    在以上代码执行后,x 的值将是:

    HELLO WORLD!

    创建新对象有两种不同的方法:

    • 定义并创建对象的实例
    • 使用函数来定义对象,然后创建新的对象实例

    创建直接的实例

    这个例子创建了对象的一个新实例,并向其添加了四个属性:

    person=new Object();
    person.firstname="盘山鹰";
    person.lastname="庹天柱";
    person.age=50;
    person.eyecolor="土匪"; 
    

    可 替代

     person={firstname:"盘山鹰",lastname:"庹天柱",age:50,eyecolor:"土匪"};
    

    使用对象构造器

    使用函数来构造对象:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtimeyu博客园</title>
    </head>
    <body>
    
    <script>
    function person(firstname,lastname,age,Job){
        this.firstname=firstname;
        this.lastname=lastname;
        this.age=age;
        this.Job=Job;
    } liuzi=new person("盘山鹰","庹天柱",50,"土匪"); document.write(liuzi.firstname + " is " + myFather.age + " years old."); </script> </body> </html>

     

    创建 JavaScript 对象实例

    一旦您有了对象构造器,就可以创建新的对象实例,就像这样:

    var mycar=new person("BMW","blue");

    把属性添加到 JavaScript 对象

    您可以通过为对象赋值,向已有对象添加新属性:

    假设 personObj 已存在 - 您可以为其添加这些新属性:firstname、lastname、age 以及 eyecolor:

    person.firstname=盘山鹰";
    person.lastname="庹天柱";
    person.age=30;
    person.job="土匪";

    x=person.firstname;

    在以上代码执行后,x 的值将是:

    盘山鹰

    把方法添加到 JavaScript 对象

    方法只不过是附加在对象上的函数。

    在构造器函数内部定义对象的方法:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtime博客园</title>
    </head>
    <body>
    <script>
    function person(firstname,lastname,age,job){
        this.firstname=firstname;
        this.lastname=lastname;
        this.age=age;
        this.job=job;
        this.changeName=changeName;
    	function changeName(name){
    		this.lastname=name;
    	}
    }
    liuzi=new person("盘山鹰","庹天柱",50,"土匪");
    liuzi.changeName("顶梁柱");
    document.write(liuzi.lastname);
    </script>
    
    </body>
    </html>
    

     

    Number 对象

    JavaScript 只有一种数字类型。

    可以使用也可以不使用小数点来书写数字。

    var pi=3.14;    // 使用小数点
    var x=34;       // 不使用小数点
    

     极大或极小的数字可通过科学(指数)计数法来写:

    var y=123e5;    // 12300000
    var z=123e-5;   // 0.00123
    

    JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。

    在JavaScript中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型。JavaScript采用IEEE754标准定义的64位浮点格式表示数字,它能表示最大值为±1.7976931348623157 x 10308,最小值为±5 x 10 -324

    值 (aka Fraction/Mantissa)指数Sign
    52 bits (0 - 51)  11 bits (50 - 62) 1 bit (63)

    精度

    整数(不使用小数点或指数计数法)最多为 15 位。

    var x = 999999999999999;   // x 为 999999999999999
    var y = 9999999999999999;  // y 为 10000000000000000
    

     小数的最大位数是 17,但是浮点运算并不总是 100% 准确:

    var x = 0.2+0.1; // 输出结果为 0.30000000000000004
    

    八进制和十六进制

    如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。

    var y = 0377;
    var z = 0xFF;
    

     绝不要在数字前面写零,除非您需要进行八进制转换。

    默认情况下,JavaScript 数字为十进制显示。

    但是可以使用 toString() 方法 输出16进制、8进制、2进制。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtimeyu</title>
    </head>
    <body>
    
    <script>
    var myNumber = 128;
    document.write(myNumber + ' 十进制<br>');
    document.write(myNumber.toString(16) + ' 十六进制<br>');
    document.write(myNumber.toString(8) + ' 八进制<br>');
    document.write(myNumber.toString(2) + ' 二进制<br>');
    </script>
    
    </body>
    </html>
    

     

    无穷大

    当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个特殊的无穷大(infinity)值,在JavaScript中以Infinity表示。同样地,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,在JavaScript中以-Infinity表示。无穷大值的行为特性和我们所期望的是一致的:基于它们的加、减、乘和除运算结果还是无穷大(当然还保留它们的正负号)。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtimeyu</title>
    </head>
    <body>
    
    <script>
    myNumber=2;
    while (myNumber!=Infinity){
    	myNumber=myNumber*myNumber;
    	document.write(myNumber +'<BR>');
    }
    </script>
    
    </body>
    </html>
    

     除以0也产生了无限:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtimeyu</title>
    </head>
    <body>
    
    <script>
    var x = 2/0;
    var y = -2/0;
    document.write(x + "<br>");
    document.write(y + "<br>");
    </script>
    
    </body>
    </html>
    

     

    NaN - 非数字值

    NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。

    可以使用 isNaN() 全局函数来判断一个值是否是 NaN 值。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtimeyu</title>
    </head>
    <body>
    	
    <p>一个数字除以一个字符串结果不是一个数字</p>
    <p>一个数字除以一个字符串数字结果是一个数字</p>
    <p id="demo"></p>
    <script>
    var x = 1000 / "Apple";
    var y = 1000 / "1000";
    document.getElementById("demo").innerHTML = isNaN(x) + "<br>" + isNaN(y);
    </script>
    
    </body>
    </html>
    

     

    数字可以是数字或者对象

    数字可以私有数据进行初始化,就像 x = 123;

    JavaScript 数字对象初始化数据, var y = new Number(123);

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>mtimeyu</title>
    </head>
    <body>
    <p id="demo"></p>
    
    <script>
    var x = 123;              // x 是一个数字
    var y = new Number(123);  // y 是一个对象
    document.getElementById("demo").innerHTML = x===y;
    </script>
    
    </body>
    </html>
    

     

    数字属性

    • MAX_VALUE
    • MIN_VALUE
    • NEGATIVE_INFINITY
    • POSITIVE_INFINITY
    • NaN
    • prototype
    • constructor

    数字方法

    • toExponential()
    • toFixed()
    • toPrecision()
    • toString()
    • valueOf()
  • 相关阅读:
    Entity Framework Core 2.0 新特性
    asp.net core部署时自定义监听端口,提高部署的灵活性
    asp.net core使用jexus部署在linux无法正确 获取远程ip的解决办法
    使用xshell连接服务器,数字键盘无法使用解决办法
    使用Jexus 5.8.2在Centos下部署运行Asp.net core
    【DevOps】DevOps成功的八大炫酷工具
    【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别
    【Network】UDP 大包怎么发? MTU怎么设置?
    【Network】高性能 UDP 应该怎么做?
    【Network】golang 容器项目 flannel/UDP相关资料
  • 原文地址:https://www.cnblogs.com/mtime2004/p/9748754.html
Copyright © 2011-2022 走看看