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 相关文章推荐
jquery获取一组checkbox的值(实例代码)
Nov 04 Javascript
jQuery的live()方法对hover事件的处理示例
Feb 27 Javascript
js 通过cookie实现刷新不变化树形菜单
Oct 30 Javascript
javascript结合Canvas 实现简易的圆形时钟
Mar 11 Javascript
详解javascript函数的参数
Nov 10 Javascript
Angular 根据 service 的状态更新 directive
Apr 03 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
Jan 20 Javascript
Angular 4.X开发实践中的踩坑小结
Jul 04 Javascript
对于Javascript 执行上下文的全面了解
Sep 05 Javascript
微信小程序自定义底部弹出框
Nov 16 Javascript
layui table数据修改的回显方法
Sep 04 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
php object转数组示例
2014/01/15 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
python flask实现分页的示例代码
2018/08/02 Python
python实现转圈打印矩阵
2019/03/02 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
如何用python批量调整视频声音
2020/12/22 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
陈欧的广告词
2014/03/18 职场文书
2014年新生军训方案
2014/05/01 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
导游词之井冈山
2019/11/20 职场文书
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python