• 第十篇 javascript基础语法


    1)基本概念

    a) 语句(statement)是为了完成某种任务而进行的操作,语句以分号结尾,一个分号就表示一个语句结束。;如:var a = 1;

    b) 表达式(expression),指一个为了得到返回值的计算式。如:1+3

    c) 变量是对“值”的引用,使用变量等同于引用一个值。var a = 1;变量存在声明和赋值两个过程,var a = 1;等价于 var a;a = 1;

    如下申明一个已存在的变量是无效的,

    var x = 1;

    var x;

    x // 1

    但是,如果第二次声明的同时还赋值了,则会覆盖掉前面的值。

    var x = 1;
    var x = 2;
    // 等同于
    var x = 1;
    var x;
    x = 2;

    avaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升。
    console.log(a);
    var a = 1;
    //等同于
    var a;
    console.log(a);
    a = 1;
    请注意,变量提升只对var命令声明的变量有效,如果一个变量不是用var命令声明的,就不会发生变量提升。

    d) 标识符(identifier)是用来识别具体对象的一个名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript语言的标识符对大小写敏感,所以aA是两个不同的标识符。
    标识符命名规则如下:
    • 第一个字符,可以是任意Unicode字母,以及美元符号($)和下划线(_)。
    • 第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以用数字0-9

    e) 数据类型如下(据说ES6有增加新的数据类型,这里不讨论):

    • 数值(number):整数和小数(比如1和3.14)
    • 字符串(string):字符组成的文本(比如"Hello World")
    • 布尔值(boolean):true(真)和false(假)两个特定值
    • undefined:表示“未定义”或不存在,即此处目前没有任何值
    • null:表示空缺,即此处应该有一个值,但目前为空
    • 对象(object):各种值组成的集合
    
    

    f) 对象又可以分成三个子类型。

    • 狭义的对象(object)
    • 数组(array)
    • 函数(function)

    g) typeof运算符 (typeof运算符可以返回一个值的数据类型)

    typeof 123 // "number"
    typeof '123' // "string"
    typeof false // "boolean"
    function f() {}
    typeof f
    // "function"
    typeof undefined
    // "undefined"
    typeof window // "object"
    typeof {} // "object"
    typeof [] // "object"
    typeof null // "object"

    既然 typeof对数组(array)和对象(object)的显示结果都是object,那么怎么区分它们呢?

    h)instanceof运算符(属于某个类型的实例)

    var o = {};
    var a = [];
    
    o instanceof Array // false
    a instanceof Array // true

    i)null和undefined
    nullundefined都可以表示“没有”,含义非常相似。将一个变量赋值为undefinednull,老实说,语法效果几乎没区别。

    首先,null像在Java里一样,被当成一个对象。但是,JavaScript的数据类型分成原始类型和合成类型两大类,Brendan Eich觉得表示"无"的值最好不是对象。

    其次,JavaScript的最初版本没有包括错误处理机制,发生数据类型不匹配时,往往是自动转换类型或者默默地失败。Brendan Eich觉得,如果null自动转为0,很不容易发现错误。

    因此,Brendan Eich又设计了一个undefined。他是这样区分的:null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN

     


    本博客的所有博文,大都来自自己的工作实践。希望对大家有用,欢迎大家交流和学习。 我的新站:www.huishougo.com
  • 相关阅读:
    flutter canvas 简单绘画直线
    Yapi 部署及遇到的坑
    flutter 时间选择器第三方插件返回时间格式说明
    windows + flutter + vscode 连接其他模拟器
    flutter 配置环境
    flutter 返回键监听
    flutter 自定义主题切换
    flutter Provide 状态管理篇
    flutter 本地存储 (shared_preferences)
    JS做倒计时的例题
  • 原文地址:https://www.cnblogs.com/zhouqingda/p/5149786.html
Copyright © 2020-2023  润新知