JS基础随笔(菜鸟必看篇)


Posted in Javascript onJuly 13, 2016

在学习的过程中总会一次次的冒出以前囫囵吞枣的地方,下面将今天学到的一下知识点记录下来方便以后查看。

JavaScript中的数据类型

简单(基本)数据类型:Number、String、Boolean、Undefined、Null

复杂(引用)数据类型: Object、Array、Date、function等

下面介绍一下简单(基本)数据类型和复杂(引用)数据类型的区别:

简单数据类型:在栈内直接存储值,如下图所示     

JS基础随笔(菜鸟必看篇)                                     

复杂数据类型:在栈内存储引用,如下图

    JS基础随笔(菜鸟必看篇)

在了解以上两种数据类型的存储方式之后可以区分两者的不同,可通过做以下的练习:

var a =10;
  var b = a;
  //问:当改变a的值后,b的值是否发生改变
  a=20;
  console.log(b);  // 10
var s1 = new Object();
var s2 = s1;
//问:改变s1的属性后,s2相同的属性是否改变
s1.name = "mh";
console.log(s2.name);    //mh
function f2(arr)
     {
       arr = [9,8,7,6,5];//产生新的对象
       arr[0]=-100;
     }
     var array = [1,2,4,7,5];
     f2(array);
     console.log(array[0]);//  1

JavaSript中的变量提升,function声明以及变量作用域

首先先看以下下面的一道面试题:

var num = 10;
    fun();
    function fun()
    {
      console.log(num);
      var num =20;
    }

在没有学习之前我会直接回答为10,现在学习JavaScript中的预编译概念知道了var关键字的提升概念以及function的声明概念知道了以上代码与下面代码等量:

var num;//全局作用域  遇到var和function 提升
     function fun() {
       var num ;  //局部做用户 遇到var 提升
       console.log(num);
       num =20;
     }
    num = 10;
    fun();

再看下面这道题:

//问题:为什么会出现下面的错误?
      //Uncaught TypeError:fnName is not a function

      console.log(fnName(1,2));
      var fnName = function (a,b) {
        return a + b;
      }

以上代码等同于以下代码:

var fnName;
      console.log(fnName(1,2));
      fnName = function (a,b) {
        return a + b;
      }

可以看到因为function在等号右面所以只会对var进行提升,从而会报“Uncaught TypeError:fnName is not a function”错误。

了解变量的作用域可以看以下代码:

f1();
        console.log(c);
        console.log(b);
        console.log(a);
        function f1() {
          var a = b = c = 20;
          console.log(c);
          console.log(b);
          console.log(a);
        }

对于var a=b=c=20; 这类连续赋值,在局部作用域内只会对a再声明,而b、c的作用域为全局作用域。所以只有全局作用域内的a报错为"Uncaught ReferenceError: a is not defined"。

以上这篇JS基础随笔(菜鸟必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript实现单张图片浏览
Dec 18 Javascript
jQuery中:eq()选择器用法实例
Dec 29 Javascript
使用jQuery实现返回顶部
Jan 26 Javascript
js实现跨域的方法实例详解
Jun 24 Javascript
vue使用drag与drop实现拖拽的示例代码
Sep 07 Javascript
Vue 中mixin 的用法详解
Apr 23 Javascript
微信小程序实现动态获取元素宽高的方法分析
Dec 10 Javascript
ES6 迭代器与可迭代对象的实现
Feb 11 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 Javascript
VUEX-action可以修改state吗
Nov 19 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
Apr 09 Javascript
如何用JS实现网页瀑布流布局
Apr 24 Javascript
Bootstrap的Refresh Icon也spin起来
Jul 13 #Javascript
jQuery实现div横向拖拽排序的简单实例
Jul 13 #Javascript
用jQuery向div中添加Html文本内容的简单实现
Jul 13 #Javascript
使用jQuery加载html页面到指定的div实现方法
Jul 13 #Javascript
用原生JS对AJAX做简单封装的实例代码
Jul 13 #Javascript
javascript类型系统——undefined和null全面了解
Jul 13 #Javascript
javascript类型系统——日期Date对象全面了解
Jul 13 #Javascript
You might like
PHP面向对象编程快速入门
2006/10/09 PHP
一个简单的php实现的MySQL数据浏览器
2007/03/11 PHP
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
jquery.validate使用详解
2016/06/02 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
2018/07/09 jQuery
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
python元组操作实例解析
2014/09/23 Python
Python读取指定日期邮件的实例
2019/02/01 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
python制作图片缩略图
2019/04/30 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Python partial函数原理及用法解析
2019/12/11 Python
python实现拼接图片
2020/03/23 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2012/04/17 面试题
房地产开盘策划方案
2014/02/10 职场文书
应届毕业生求职信
2014/05/26 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
财务务虚会发言材料
2014/10/20 职场文书
煤矿安全保证书
2015/02/27 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS