zoukankan      html  css  js  c++  java
  • JavaScript 语法、数据类型

    大小写

    变量、函数名、操作符区分大小写

    标识符

    变量、函数、属性名、函数参数,第一个字符必须是字符、下划线 ( _ ) , 或美元符($)
    其它字符可以是字母,下划线,美元符或数字

    注释

    // 单行注释
    
    /*
     * 多行注释
     *
     */
    

    严格模式

    ECMAScript 5 引入严格模式概念,为 JavaScript 定义了一种不同的解析与执行模型

    严格模式下,ECMAScript 3 中的一些不确定行为得到处理,而且对某些不安全的操作也会抛出错误。

    在整个脚本中启用严格模式,在顶部添加

    "use stricr"
    

    也可以指定函数在严格模式下执行

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

    语句

    不强制使用分号作为语句结尾,但不推荐省略封号

    var sum = a + b			// 没有分页也是有效语句,不推荐
    
    var diff = a - b;		// 有效语句,推荐
    

    推荐使用{} 大括号将多个语句组合到一个代码块中

    if (test)
    	alert(test);		// 有效但容易出错,不要使用
    
    if (test) {				// 推荐使用
    	alert(test);
    }
    

    关键字和保留字

    参考 ECMA-262

    变量

    ECMAScript 变量支持松散绑定

    定义变量使用var操作符,例如

    var message;
    
    var sum = 10;
    
    var str = "hi";
    

    注意:var 操作符定义的变量将成为定义该变量的作用域中的局部变量

    function test() {
        var message = "hi"
    }
    test();
    console.log(message); // 错误
    

    虽然省略var操作符可以定义全局变量,但是不推荐这样的做法,因为难以维护,造成代码混乱

    function test() {
        message = "hi"
    }
    test();
    console.log(message); // "hi"
    

    可以使用一条语句定义多个变量

    var message = "hi",
    	str = "hello",
    	age = 29;
    

    数据类型

    5 种简单数据类型(基本数据类型)

    • Undefined
    • Null
    • Boolean
    • Number
    • String

    1 种复杂数据类型

    • Object

    typeof 操作符

    对一个值使用typeof操作符可能返回下列某个字符串

    • Undefined如果这个值未定义
    • boolean如果这个值是布尔值
    • string如果这个值是字符串
    • number -如果这个值是数值
    • object如果这个值是对象或null
    • function -如果这个值是函数
    var message = "some string";
    console.log(typeof message);     // string
    console.log(typeof (message));   // string
    console.log(typeof 95);          // number
    
    function f() {
        // do something
    }
    console.log(typeof f); // function
    
    var result = true;
    console.log(typeof result); // boolean
    
    var value;
    console.log(typeof value); // undefined
    

    注意: typeof 是一个操作符,不是函数,以上代码种的括号可以使用,但不是必须的

    Undefined 类型

    Undefined 类型只有一个undefined特殊的值,在使用var声明变量但未对其加以初始化的时候,这个变量的是就是undefined

    var message;
    console.log(message == undefined); // true
    
    var message = undefined;	// 没有必要显式地将一个变量的值设置为undefined
    console.log(message == undefined); // true
    

    Null 类型

    Null 类型只有一个null特殊的值,null值代表一个空对象指针

    var car = null;
    console.log(typeof car); // "object"
    

    尽管以下代码输出 true

    console.log(null == undefined); // true
    

    没有必要显式地将一个变量的值设置为undefined,但这条规则对于null不适用,只要意在保存的对象的变量还没有真正的保存对象,就应该明确地让该变量保存null值,

    Number 类型

    Number 类型表示整数和浮点数

    可表示十进制、八进制、十六进制的数字

    八进制字面值第一位必须是0,然后是八进制数字序列0~7。如果字面值种的数值超出范围,那么前面的0被忽略,后面的数值作为十进制数值解析。八进制数在严格模式下无效,并会抛出错误

    var num = 070;	// 八进制的56
    var n = 079;	// 无效的八进制数字,解析为79
    

    十六进制字面值的前两位必须是0x,后面跟任何十六进制数字(09,以及AF),A~F不区分大小写

    var a = 0xa;	// 十六进制的10
    var b = 0x1F;  	// 十六进制的31
    

    String类型

    string类型用于表示零个或多个16位Unicode字符组成的字符序列,即字符串.可以由双引号(")或者单引号(')表示

    var str = "Hello, Wrold!";
    var str = '你好, 世界!';
    

    特点是字符串长度不可变

    转换为字符串,使用 toString() 方法

    var a = 11;
    var str = a.toString();
    console.log(a + 1)      // 12
    console.log(str + 1);   // 111
    

    可以使用toString()方法进行进制转换

    var num = 10;
    console.log(num.toString());       //10
    console.log(num.toString(2));      //1010
    console.log(num.toString(8));      //12
    console.log(num.toString(10));     //10
    console.log(num.toString(16));     //a
    

    Object类型

    一组数据和功能的集合

    var o = new Object();
    var a = new Object;		// 有效,但不建议省略圆括号
    

    每一个Object实例都有下列属性和方法

    • constructor 保存着用于创建当前对象的函数

    • hasOwnProperty(propertyName) 用于检查给定的属性在当前对实例种是否存在

    • isPropertyOf(propertyName) 用于检查传入的对象是否是当前对象的原型

    • propertyIsEnumerablr(propertyName) 用于检查给定的属性是否能够使用for-in语句来枚举

    • toLocaleString() 返回对象的字符串表示,该字符串与执行环境的地区对应

    • toString() 返回对象的字符串表示

    • valueOf() 返回对象的字符串

  • 相关阅读:
    正则表达式点滴
    异步处理与界面交互
    关于利用VS2008创建项目遇到的小困惑备忘
    using App.cofig to Store value
    Castle ActiveRecord学习笔记三:初始化配置
    无服务器端的UDP群聊功能剖析
    为VS2010默认模板添加版权信息
    理论有何用?不问“何用”,先问“用否”!
    微软没有公开的游标分页
    那些满脑子只考虑后台数据库的人他整天研究的就是针对自己查询一些数据的sql语句
  • 原文地址:https://www.cnblogs.com/Haidnor/p/12363631.html
Copyright © 2011-2022 走看看