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 相关文章推荐
脚本吧 - 幻宇工作室用到js,超强推荐base.js
Dec 23 Javascript
jQuery随机密码生成的方法
Mar 09 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
Apr 30 Javascript
使用Raygun来自动追踪AngularJS中的异常
Jun 23 Javascript
利用jquery获取select下拉框的值
Nov 23 Javascript
微信小程序 自己制作小组件实例详解
Dec 22 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
Dec 11 Javascript
vue 下列表侧滑操作实例代码详解
Jul 24 Javascript
微信小程序实现文字从右向左无限滚动
Nov 18 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
element跨分页操作选择详解
Jun 29 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
PHP下10件你也许并不了解的事情
2008/09/11 PHP
php相当简单的分页类
2008/10/02 PHP
php xml 入门学习资料
2011/01/01 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
symfony2.4的twig中date用法分析
2016/03/18 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
基于jquery的loading效果实现代码
2010/11/05 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
Python中的字符串类型基本知识学习教程
2016/02/04 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
python实现QQ批量登录功能
2019/06/19 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
Shell脚本如何向终端输出信息
2014/04/25 面试题
市政施工员自我鉴定
2014/01/15 职场文书
小学教师培训方案
2014/06/09 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
普宁寺导游词
2015/02/04 职场文书
2015年暑期见闻
2015/07/14 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书