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编写的第一人称射击游戏
Feb 25 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
Dec 16 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
AngularJS 如何在控制台进行错误调试
Jun 07 Javascript
避免jQuery名字冲突 noConflict()方法
Jul 30 Javascript
Vue.js实现分页查询功能
Nov 15 Javascript
基于React+Redux的SSR实现方法
Jul 03 Javascript
JavaScript遍历数组和对象的元素简单操作示例
Jul 09 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
JavaScript实现世界各地时间显示
Sep 07 Javascript
微信小程序实现翻牌抽奖动画
Sep 21 Javascript
vue如何在data中引入图片的正确路径
Jun 05 Vue.js
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+mysql写的简单留言本实例代码
2008/07/25 PHP
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Python MySQLdb Linux下安装笔记
2015/05/09 Python
Python中取整的几种方法小结
2017/01/06 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
python实现五子棋小游戏
2020/03/25 Python
python爬取基于m3u8协议的ts文件并合并
2019/04/26 Python
python根据文本生成词云图代码实例
2019/11/15 Python
基于python实现查询ip地址来源
2020/06/02 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
迟到检讨书900字
2014/01/14 职场文书
创先争优承诺书范文
2014/03/31 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
会计专业求职信范文
2015/03/19 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS