前端知识技术文

JS第一天

2016-09-03  本文已影响95人  清枫_小天

html+js

注释

两种

标识符

由字母,数字,下划线,$,不能以数字开头,不能为关键字

数据类型(数据最小的单位)

弱类型语言

检测变量所属的数据类型
var sesult =typeof 变量名

提问框
var result = prompt("提问内容");
alert("提示信息");
console.log();

基本数据类型之间的转换

Undefiend

一般不考虑其他基本数据类型转换为undefined

Null类型

一般不考虑其他基本数据类型转换为null

Boolean类型

其他类型转换为Boolean:
虽然boolean类型的取值只有两个,但是ECMAScript中所有的类型的值都有
与这两个Boolean值等价的值

Boolean        true          false
String        非空字符串       ""
Number        任何非0非NaN      0和NaN
Undefined                 undefined    
Null                         null

例如:

   Boolean("");        //false
   Boolean(0);        //false
   Boolean(NaN);    //false
   Boolean(null)    //false
   Boolean(undefined)    //false
   Boolean("briup");    //true
   Boolean(1);        //true

Number

isNaN(para) 当参数para不是数值的时候返回true

数值转换

Number()
如果转换的值是null,undefined,number,boolean
    Number(true);    //1
    Number(false);    //0
    Number(10);    //10 如果是数字值,原样输出
    Number(null);        //0
    Number(undefined);    //NaN
如果是字符串:
    Number("123");  //如果仅包含数值,转换为对应的数值
    Number("234.1");//解析为对应的小数
    Number("+12.1");//首位为符号位,其余为为数值,转换为对应的数值
    NUmber("1+2.3");//NaN 符号位出现在其他位置,解析为NaN
    Number("0xa");  //如果仅包含十六进制格式,转为为对应的十进制的值
    Number("010");    //注意!不会当做八进制被解析,结果为10
    Number("");    //空字符串被转换为0
    Number("123ac");//包含其他字符: NaN
    Number(" 12");    //12
parseInt()
parseFloat()
    与parseInt()类似,
    但是会将小数转换为对应的小数 

String

toString() 转化为字符串

包装器类 number -> Number
       var num = 10;
       num.toString();  "10"
       num.toString(2); "1010"
       num.toString(8); "12"
       num.toString(16);"a"

注意:
       null ,undefined 没有toString() 方法
       null.toString()        //报错 TypeError: null has no properties
   undefined.toString();    //报错 TypeError: undefined has no properties

String() 用来将任意数据类型转换为字符串

       String(null)        "null" 
       String(undefined);     "undefined"

复杂数据类型 Object

ECMAScript中的对象其实就是一组数据和功能的集合。

创建Object实例:

new Object() => {}; 创建一个空对象

new Object();

    var person = new Object();
    person.name = "briup";
    person.age = 22;

使用对象字面量表示法

     不同的属性之间用','分割,属性名和属性值之间用':'分割
    var person = {
        name : "briup",
        age : 22
    };

访问对象属性

点表示法,右侧必须是以属性名称命名的简单标识符

person.name

中括号表示法,中括号中必须是一个计算结果为字符串的表达式

可以通过变量访问属性

    var a = "name";
    person[a];    //既person["name"]
    person["first name"]

如果属性名中包含语法错误的字符,或者属性名使用的是关键字或保留字,
可以使用中括号 person["first name"]

删除属性

delete只是断开了属性和宿主对象的联系,而不会操作属性中的属性,并且delete
只会删除自有属性,不能删除继承属性。在销毁对象时,为了防止内存泄露,遍历属
性中的属性,依次删除所有属性。

检测属性

in 检测某属性是否是某对象的自有属性或者是继承属性

    "toString" in student

hasOwnProperty()检测给定的属性是否是对象的自有属性,对于继承属性将返回false

    var o = {
        x:1
    }
    o.hasOwnProperty("x");    //true, x 为o的自有属性
    o.hasOwnProperty("y");    //false,o 中不存在属性y
    o.hasOwnProperty("toString");    //toString为继承属性
 propertyIsEnumerable() 检测给定的属性是否是该对象的自有属性,并且该属性是可枚举的
    通常由JS代码创建的属性都是可枚举的,但是可以使用特殊的方法改变可枚举性。
    student.propertyIsEnumerable("toString")    //false 不可枚举

Object属性及方法

Object 类型所具有的任何属性和方法也同样存在于其他对象中,任何对象继承于Object对象

Object中常用的方法:

对象序列化

对象序列化是指将对象的状态转换为字符串,也可以反序列化,将字符串还原为对象
函数,RegExp,Error对象,undefined值不能序列化和反序列化。

上一篇 下一篇

猜你喜欢

热点阅读