zoukankan      html  css  js  c++  java
  • JavaScript-基本语法和数据类型

           前奏:在HTML中使用JavaScript

           1_推荐src引用外部JavaScript文件,方便管理与维护,标签位置在页面最下面,使浏览器更优先加载页面内容。

           2_HTML页面需要有标准的文档类型申明DOCTYPE,否则会触发混杂模式,页面非常容易出错。

           3_考虑禁用JavaScript的场景。

    <body> 
    
    ...
    
    //当浏览器不支持javascript或被禁用时,会呈现<noscript>标签内的内容。
     <noscript> 
        <p>本页面需要浏览器支持JavaScript.</p>
     </noscript> 
    </body>


            1. 基本语法

    1.  ECMAScript中的一切(变量,函数名和操作符)都区分大小写。

    2.  标识符命名: 首字符必须字母,下划线或$美元符号,数字不能在第一个。(关键字和保留字不能作为标识符)

    3.  严格模式 “use strict” 定义了一种要求更高的解析和执行模型

    function doSomething(){
         "use strict"
         //函数体
     }


     

           2. 数据类型

    数据类型分为基本类型和复合类型。

    image

    变量:变量在本质上就是命名的内存空间。

    变量的数据类型:就为上面提供的6种数据类型,不过变量的数据类型是动态的,可以在运行时改变变量的数据类型。

    变量类型:值类型和引用类型两种,当变量的数据类型是简单数据类型时,变量类型就是值类型,当变量的数据类型是对象类型时,变量类型就是引用类型。

                    值类型的变量存储的就是变量值本身,引用类型的变量存储的是一个指向变量值的指针(地址)。

    基本数据类型:number,boolean 、string 、null和 undifined。

    number 整型或浮点型
    boolean 布尔类型,true或false (注意区分大小写,必须都为小写时才是)
    string 字符串,单双引号都可以
    null 表示一个空对象指针,
    undefined 变量申明未定义时为undefined,
    object 数据和功能的集合

    number类型

    1. 八进制在严格模式下无效,十六进制前两位必须为0x,计算式都将转换为十进制

    2. 取值范围,使用全局isFinite()函数判断是否超出范围,如果在范围内则为true,如果在范围外则为false.

    Number.MAX_VALUE; /* 最大数值(JS 可以表示的) */
    Number.MIN_VALUE; /* 最小数值(JS 可以表示的) */
    Number.NEGATIVE_INFINITY; /* 负无穷大,值为-Infinity */
    Number.POSITIVE_INFINITY; /* 无穷大 值为Infinity */

    3. NaN和isNaN()

          NaN是number类型,但不是数字,一旦程序中出现了NaN,说明出现了问题,

          NaN的布尔属性为false,NaN和任何值都不相等,包括NaN本身。

          任何涉及NaN的操作都会返回NaN。

          isNaN()

          里面的数据首先通过number()方法转换,

          如果能够转为数字,则isNaN()为 false。

          如果不能转为数字,则isNaN()为true。

    4.数值转换

    1. Number()函数:将数据整体转换成Number类型,和使用一元加操作符(+)作用相同,建议使用 + 操作符,比较简单。 直接加一个空字符串。
    2. parseInt()函数:解析整数,从左往右,遇到非数字即停止,可以传入数据和进制,如parseInt('070',8)输出10进制的56。
    3. parseFloat()函数:解析浮点数,从左往右,会识别第一个小数点,只能接受一个参数,需要注意的是,如果被解析的数据结果是整数,会直接返回整数。

    boolean类型

    Boolean类型只有:true和false。注意区分大小写,其它形式的都不是,例如True和False.

    1. 任何一种数据类型的值都能转换为与其相对应的Boolean值,转换方式主要有三种:

      显示转换:转型函数Boolean() 

           隐式转换,比如条件语句if

    2.在转换为数值时,true和false分别转换为1和0,转换为字符串时,分别为'true'和'false'。

    3.Boolean类型的true和false,使用typeof时,均返回字符串'boolean'。

    string类型

    1.隐式转换,任何一个数值与字符串相加,都会将其使用String()转换成字符串,然后将两个字符串合并。

    2.显示转换String(),

    3.字符串使用反斜杠“”来转义,常见的转义字符:

    字面量 含义 字面量 含义 字面量 含义
    换行 制表  空格
    回车 f 进制 \ 反斜杠
    单引号 双引号    
    xnn 以十六进制代码nn表示的一个字符 unnnn 以十六进制代码nnnn表示的一个Unicode字符    

    null和undefined区别

     

    null

    undefined

    表示 空对象指针 尚未定义的变量
    typeof运算结果 object undefined
      undefined派生null,使用==判断为true undefined派生null,使用==判断为true
      如果定义变量准备在将来保存对象,
    那么最好将变量初始化为null.
    无论申明情况下后没有必要将一个变量显示设置为undefined.

    这五种基本数据类型可以直接操作保存在变量中的实际值

    基本数据类型都保存在内存中的栈区。

    image

     

    引用(复合)数据类:javascript引用数据类型是保存在堆内存中,JavaScript不允许直接访问堆内存空间中的位置和操作堆内存空间,只能通过操作对象在栈内存中的引用地址。

                                 所以引用类型的数据,在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存在堆内存中的对象。

    image

    注意:如果obj b重新赋值操作时, obj a指向原本的对象不变,obj b指向新的对象,赋值和复制操作不一样。

     引用类型是可以添加属性,基本类型虽然也可以添加属性,也不会报错,但是却无法访问

     

  • 相关阅读:
    笔记:多线程访问ConcurrentHashMap对key加锁
    根据第三列去重
    Correct the classpath of your application so that it contains a single, compatible version of org.apache.log4j.ConsoleAppender
    python 中将源配置为阿里
    criteria两个 判断
    git flow
    sqlmap用法详解
    MongoDB 入门
    MongoDB 手册
    OWASP TOP 10简单介绍
  • 原文地址:https://www.cnblogs.com/Peng2014/p/4706005.html
Copyright © 2011-2022 走看看