js再次学习

新进的公司,又要把我们js(前端)再培训一次,也就顺带学习一次。也收获不少,书读百遍,其义自见。

1、JavaScript显示数据

JavaScript 可以通过不同的方式来输出数据:

(1)、使用window.alert()弹出警告框。(window可以省略)

(2)、使用document.write()方法将内容写到 HTML 文档中。

(3)、使用innerHTML写入到 HTML 元素。

(4)、使用console.log()写入到浏览器的控制台。

2、JavaScript注释

(1)单行注释://单行注释

(2)多行注释:/*多行注释*/

3、JavaScript 数据类型

字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undefined)。

因为js中数据的类型很奇怪,而且语法不算很严谨,学习起来总是觉得很难受,个人觉得。

来看一下定义一个数组:

第一种:通过new来定义一个数组,然后通过下标来对数组赋值

第一种方式new

第二种:new的同时,直接赋值

第三种:不用new关键字

接下来再看一下js中的对象,来看一下对象的定义:

对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔

然后对象寻址主要有两种,有点像java中对象的属性。

第一种是利用[]括号,里面写对应属性名:对象名[属性名]

第二种就是类似java中对象的属性,对象名.属性名

最后再来说一下Undefined 和 Null的联系或者说区别吧:

Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。

Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

接下来几个经典的例子看下:

这段代码显示为true,代表flag的值即为undefined,因为我们没有初始化它。

当页面上不存在id为"notExistElement"的DOM节点时,这段代码显示为"true",因为我们尝试获取一个不存在的对象。

下面来看一下这两种数据类型的类型,有点拗口。。。。。。通过typeof关键字来判断一个变量所属的类型

第一行代码很容易理解,undefined的类型为Undefined;第二行代码却让人疑惑,为什么null的类型又是Object了呢?其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来。在今天我们可以解释为,null即是一个不存在的对象的占位符,但是在实际编码时还是要注意这一特性。

再来一个比较经典的undefined与null的题目:

ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。

使用typeof方法在前面已经讲过,null与undefined的类型是不一样的,所以输出"false"。而===代表绝对等于,在这里null === undefined输出false。

4、JavaScript 函数

js中的函数是用关键字function定义的,可以有函数名,也可以没有函数名的。

讲到函数,我就要想说一件js中较其他语言不同的一点:js中能形成作用域的只有函数。下面举例子来看看:

像这种,明明i是定义在for里面的,应该是个局部变量,但是输出的时候i是等于10.这个很重要。

这时候,运行时控制台会报错,Uncaught ReferenceError: i is not defined,就是说i没有定义。因为i是定义在函数里面的,这也就说明js中形成作用域的只有函数。这点勿忘。

注:

JavaScript 变量的生存期

JavaScript 变量的生命期从它们被声明的时间开始。

局部变量会在函数运行以后被删除。

全局变量会在页面关闭后被删除。

JavaScript 变量生命周期

JavaScript 变量生命周期在它声明时初始化。

局部变量在函数执行完毕后销毁。

全局变量在页面关闭后销毁。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,207评论 0 13
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,162评论 0 21
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock阅读 3,408评论 2 36
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 4,076评论 0 0
  • 文 | 一鸣 二十岁那天,我褪去了人鱼的尾巴,我对着满月祈愿,让我今生再遇着他。 那一夜,我在世人的梦境中流连,...
    一鸣阅读 854评论 12 41