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 相关文章推荐
IE6下出现JavaScript未结束的字符串常量错误的解决方法
Nov 21 Javascript
在JavaScript中访问字符串的子串
Jul 07 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
Dec 04 Javascript
JS三级可折叠菜单实现方法
Feb 29 Javascript
JS中setTimeout和setInterval的最大延时值详解
Feb 13 Javascript
使用grunt合并压缩js和css文件的方法
Mar 02 Javascript
AngularJS1.X学习笔记2-数据绑定详解
Apr 01 Javascript
详解vue父子组件间传值(props)
Jun 29 Javascript
js实现前端图片上传即时预览功能
Aug 02 Javascript
jQuery基于Ajax实现读取XML数据功能示例
May 31 jQuery
layui table 多行删除(id获取)的方法
Sep 12 Javascript
原生js实现html手机端城市列表索引选择城市
Jun 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
最小化数据传输――在客户端存储数据
2006/10/09 PHP
分享PHP入门的学习方法
2007/01/02 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
利用Vue实现简易播放器的完整代码
2020/12/30 Vue.js
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
Python文件操作类操作实例详解
2014/07/11 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
浙大网新C/C++面试解惑
2015/05/27 面试题
车间工艺员岗位职责
2013/12/09 职场文书
八年级物理教学反思
2014/01/19 职场文书
承认错误的检讨书
2014/01/30 职场文书
公司离职证明范本(5篇)
2014/09/17 职场文书
简单的离婚协议书范本
2014/11/16 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python