zoukankan      html  css  js  c++  java
  • Js整理备忘(00)—— 基础

    1、字符集 

    Unicode字符,Javascript(以下均简称Js)程序中每个字符都是两个字节表示的,16位的Unicode编码可以表示地球上通用的每一种书面语言。

    2、数据类型

    数字(number)

    所有数字都由浮点型表示,采用IEEE 754标准定义的64位浮点格式。注意,某些整数运算(如位运算)是对32位整数执行的。

    一些特殊数值常量:

    NaN(Number.NaN),特殊非数字值;

    Infinity(Number.POSITIVE_INFINITY),正无穷大;

    -Infinity(Number.NEGATIVE_INFINITY),负无穷大;

    Number.MAX_VALUE,可表示的最大数字;

    Number.MIN_VALUE,可表示的最小数字(最接近零)。

    ——函数 isFinite(n) 检测一个数字是否是NaN、正无穷大或负无穷大。

    字符串(string)

    没有char这样的类型,表示单个字符,必须使用长度为1的字符串。

    布尔值(boolean)

    有时候可以把两个可能的布尔值看作on(true)和off(false),或者yes和no

    函数(function)

    是“具有可执行代码的对象”

    对象(object)

    表示“已命名的数据的无序集合”

    这些已命名的数据通常被作为对象的属性来引用(有时,它们被称为),属性可以是任何类型的数据(数组、函数、对象…)。

    此外,还有一些专用对象,如Date类、RegExp类、Error类等。

    数组(array)

    表示“有编号的数据的有序集合”

    数组可以存放任何一种Js数据类型,包括对其他数组、对象、函数的引用。

    Js中并不支持多维数组,不过其数组元素还可以是数组。

    Js是一种非类型语言,因此数组元素不必具有相同类型。

    空(null)、未定义(undefined)

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

    ——布尔环境:false;数字环境:0;字符串环境:“null”

    undefined  使用一个未被声明的变量、或已经声明但未赋值的变量、或并不存在的对象属性时,返回该值。

    ——布尔环境:false;数字环境:NaN;字符串环境:“undefined”

    注意:

    (1)运算符“==”将两者看作相等

    (2)运算符“===”或者typeof()可区别两者

    类型间的转换——详参考权威指南P47

    数字-->字符串:N.toFixed(n),N.toExponential(n),N.toPrecision(n)

    字符串-->数字:parseInt/parseFloat(s,{p})

    布尔型-->其他:数值,true->1,false->0;字符串,true->“true”,false->“false”

    其他-->布尔型:数值,0/NaN->false,其他->true;字符串,空串->false,其他->true;其他,null/undefined->false,任何非空的对象/数组/函数->true

    3、基本数据类型的包装对象

    先看两句常见的字符串操作

    var s="Hello Word";

    var last_word=s.substring(s.lastIndexOf("")+1,s.length);

    s是对象吗?字符串不是基本类型吗?由typeof(s)可知s是string类型,即字符串类型。那么为什么字符串的操作能够采用对象的表示法呢?

    ——事实上,三种基本类型都有相应的对象类,即Number、String和Boolean类,这些类是基本类型的包装(wrapper),不仅具有和基本类型一样的值,还定义了用来运算数据的属性和方法。

    注意:当在对象的环境中使用字符串时,被创建的String对象是瞬时存在的,使我们可以访问属性或方法,用完后就没有了,系统会将它丢弃。

    以前面两行代码为例,测试:

    <script type="text/javascript">
        var s = "Hello Word";
        document.write(typeof (s));
        
        var last_word = s.substring(s.lastIndexOf("") + 1, s.length);
        document.write("<br/>" + typeof (s));
    </script>
    页面输出什么?答案是——

    string

    string(说明s只是在使用其包装对象的属性或方法时瞬时创建了一个String的对象而已,用完即被丢弃,而s本身没有变化)

    但是,如果要显式地使用String对象,则必须创建一个非瞬态对象,如S=new String("Hello Word");

    同样地,当我们在需要原始字符串值的地方用了String对象时,Js也会自动将String对象转换为一个字符串。

    如msg=S+"!";

    此处有关字符串值和String对象的内容同样适用于数字、布尔值和Number、Boolean对象。

  • 相关阅读:
    Android OpenGL ES和OpenGL一起学(二)------理解Viewport(视口)和坐标系Android OpenGL ES篇(转帖)
    CSOM中如何取到managed metadata类型字段的类型信息
    "Value does not fall within the expected range" with managed metadata fields
    GLFW_KEY_KP_ADD和GLFW_KEY_KP_SUBTRACT
    OPENGL: WHY IS YOUR CODE PRODUCING A BLACK WINDOW?
    (转)真正的中国天气api接口xml,json(求加精) ...
    Mongo如何在多个字段中查询某个关键字?
    VS2010整合NUnit进行单元测试
    ASP.NET MVC3 学习心得------路由机制
    MVC3中 ViewBag、ViewData和TempData的使用和区别
  • 原文地址:https://www.cnblogs.com/gppblog/p/1643717.html
Copyright © 2011-2022 走看看