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代码
Mar 16 Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
Dec 16 Javascript
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
Sep 09 Javascript
javascript XMLHttpRequest对象全面剖析
Apr 24 Javascript
StringTemplate遇见jQuery冲突的解决方法
Sep 22 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
May 16 Javascript
JavaScript中valueOf函数与toString方法深入理解
Dec 02 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
Aug 30 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
JointJS流程图的绘制方法
Dec 03 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
Apr 17 Javascript
javascript实现贪吃蛇游戏(娱乐版)
Aug 17 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发送post请求函数分享
2014/03/06 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
在Python中进行自动化单元测试的教程
2015/04/15 Python
Python读取word文本操作详解
2018/01/22 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
Django 自定义分页器的实现代码
2019/11/24 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
2019/12/23 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
美国知名艺术画网站:Art.com
2017/02/09 全球购物
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
企业宣传口号
2014/06/12 职场文书
南京导游词
2015/02/03 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
2016年学校招生广告语
2016/01/28 职场文书
python解析照片拍摄时间进行图片整理
2022/07/23 Python