美文网首页
JavaScript代码执行顺序和数据类型

JavaScript代码执行顺序和数据类型

作者: 追逐_e6cf | 来源:发表于2019-02-08 18:52 被阅读0次

一、代码执行顺序

  1. 浏览器解释代码是自上而下的,遇到script标签会直接解读js代码,下面的html元素就不会被解析,下面的html元素就获取不到,直到读取完毕。
  2. src引入的图片资源/js资源,href引入的css资源,整个文档也需要加载,到资源加载完毕,就可以执行代码。
<!-- 报错 -->
<script>
    document.getElementById('box').onclick = function(){
        alert(1);
    }
</script>
<div id="box">123</div>
<!-- 正常 -->
<script>
    //当我们的窗口内所有的资源都加载完成之后,执行其中的代码
    window.onload = function(){
        document.getElementById('box').onclick = function(){
            alert(1);
        }
    }
</script>
<div id="box">123</div>
  1. 当alert放到div的上方,开启窗口的时候,div不加载,点击确定后加载,刷新页面后div消失。
  2. 当alert放到div的下方,如果在chrome的64版本以上,包括360、qq等浏览器的最新版本,开启窗口的时候,div不加载,点击确定后加载,刷新页面后div消失。alert对话框不会激活所在的选项卡,当我们新建选项卡时,显示正常。如果在火狐浏览器,就是正常的出现div,出现弹窗。不阻止上面元素的加载。
  3. 所有的alert代码在chrome中只在第一次阻止页面的加载,但是在火狐浏览器都是正常的。

二、数据类型

  1. 数值型(number):包括小数和整数,在js中,小数运算是不精确的,不能用它做判断。
var num = 12.3;
console.log(typeof num);//number
  1. 字符串(string):字符连成的串,可以用""、''包裹,此时字符串不能换行,``反引号包裹可以换行。
var str = '你好';
console.log(typeof str);//string
  1. 布尔值(boolean):true/false。
var b = true;
console.log(typeof b);//boolean
  1. function(function):没有名字的函数,称之为匿名函数,不能莫名其妙的出现一个匿名函数。具名函数可以通过函数名+()。
function fn(){
    alert(1);
}
console.log(typeof fn);//function
  1. 对象(object):简单的写法为{},实际上空的一个对象是使用new Object得到的。
//var obj = {};
var obj = new Object;
console.log(typeof obj);//object
  1. 数组(object):数组中可以存放任何数据类型,简单写法[数据, 数据, 数据],空数组为[],是由new Array创造的。
//var arr = [];
var arr new Array;
console.log(typeof arr);//object
  1. null(object):本质是一个空对象指针,是找对象的时候没找到。
var n = document.getElementById('box');
console.log(typeof n);//object
  1. undefined(undefined):声明了但是并未赋值。
var u;
console.log(typeof u);//undefined

注:

  • js中有5种简单数据类型(也称为基本数据类型):undefined、null、boolean、number、string,还有1种复杂数据类型:object,object本质上是由一组无序的名值对组成的。
  • 对一个值使用typeof操作符可能返回下列某个值:undefined、boolean、string、number、object、function。
  • 对于尚未声明过的变量,只能执行一项操作,即使用typeof操作符检测其数据类型,对于未初始化的变量执行typeof操作符会返回undefined,而对未声明的变量执行typeof操作符同样也会返回undefined。
var message;//这个变量声明之后默认取得了undefined值

//下面这个变量并没有声明
//var age;

alert(typeof message);//"undefined"
alert(typeof age);//"undefined"
  • undefined值是派生自null值的,因此对他们的相等性测试要返回true。
alert(null == undefined);//true

相关文章

  • (3)执行上下文栈

    顺序执行? 如果要问到 JavaScript 代码执行顺序的话,想必写过 JavaScript 的开发者都会有个直...

  • 3.JS执行上下文

    顺序执行? 如果要问到 JavaScript 代码执行顺序的话,想必写过 JavaScript 的开发者都会有个直...

  • JavaScript代码执行顺序和数据类型

    一、代码执行顺序 浏览器解释代码是自上而下的,遇到script标签会直接解读js代码,下面的html元素就不会被解...

  • # 宏任务和微任务

    首先说明 首先在JavaScript中,有同步代码和异步代码.这点很清晰. 代码的执行优先级顺序是,同步代码执行优...

  • 详解JavaScript的任务、微任务、队列以及代码执行顺序

    摘要: 理解JS的执行顺序。 作者:前端小智 原文:详解JavaScript的任务、微任务、队列以及代码执行顺序 ...

  • 3. JavaScript基础入门

    主要内容包括JavaScript的语法、变量、数据类型 3.1 JavaScript的语法 3.1.1. 代码执行...

  • js代码的异步执行方式

    由于JavaScript的执行环境是单线程的,导致js代码的两种执行方式: 以js代码的先后顺序执行的顺序型 以事...

  • hive sql执行顺序

    mysq和hive的sql执行顺序对比 msyql语句执行顺序代码写的顺序: 代码的执行顺序: hive 语句执行...

  • JavaScript_03执行上下文栈

    1.JavaScript 是顺序执行么? 先看两段代码: 没有问题,是顺序执行 再看两段代码: 打印结果却是两个 ...

  • javascript 同步异步

    javascript的同步异步和现实生活是相反的。 同步 代码的执行是有顺序的,必须要等前面的执行完成,后面的代码...

网友评论

      本文标题:JavaScript代码执行顺序和数据类型

      本文链接:https://www.haomeiwen.com/subject/vlkosqtx.html