博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于JS的随笔(二)
阅读量:4599 次
发布时间:2019-06-09

本文共 1708 字,大约阅读时间需要 5 分钟。

闭包

  1. 为什么要用闭包:出于种种原因,我们可能用的到函数内的属性,但是因为函数内定义的属性为局部变量,并不能在函数外使用,这个时候我们可以使用闭包来拿到我们想要的属性
  2. 这样做的好处是什么?   因为我们不仅可以将函数内的变量变相地提升了定义域,而且还可以避免变量名冲突的问题,变量可以在内存中一直存在。
  3. 说了这么多,那么闭包是什么样的呢?
    function test(){    var a = 0    return function test01(){         a++         return console.log(a)    }}//调用testvar a =test()a()//1a()//2a()//3

     

 

JS的内置对象

  1. Arguments  只定义在函数内部,保存了函数的实参
  2. Array  数组对象
  3. Date   日期对象
  4. math        数学对象
  5. String       字符串对象

  String

  ◦ charAt(idx):返回指定位置处的字符

  ◦ indexOf(Chr):返回指定子字符串的位置,从左到右。找不到返回-1

  ◦ substr(m,n):返回给定字符串中从 m 位置开始,取 n 个字符,如果参数 n 省略, 则意味着取到字符串末尾。

  ◦ substring(m,n):返回给定字符串中从 m 位置开始,到 n 位置结束,如果参数 n 省 略,则意味着取到字符串末尾。

  ◦ toLowerCase():将字符串中的字符全部转化成小写。

  ◦ toUpperCase():将字符串中的字符全部转化成大写。

  ◦ length: 属性,不是方法,返回字符串的长度。

 

JS对象

  对象(object)是 JavaScript 的核心概念,也是最重要的数据类型。JavaScript 的所有数 据都可以被视为对象。JavaScript 提供多个内建对象,比如 String、Date、Array 等等。对象是 带有属性和方法的特殊数据类型。  简单说,所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成。通 过 JavaScript 我们可以创建自己的对象。 JavaScript 对象满足的这种”键值对”的格式我们成为 JSON 格式,以后会见得非常多,即伟大的 JSON 对象

  1. 对象的创建  var a = {};  var a = {name:zs,age:12}         var a = new Object()   a.name="zs“  a.age=12  var a = Object.create(null);此处的null可以放入一个对象,新建的a继承放入对象的所有属性
  2. 对象的序列化和反序列化     1)JSON.Stringify(object)  将对象object进行序列化,转换成字符串             2)JSON.parse(jsonstr)  将jsonstr进行反序列化,字符串转变成为对象。
  3. eval()的用法  eval可以将字符串直接执行 如(eval("console.log('你好,控制台')执行这句话,可以直接在控制台上面打印字符串),也就可以将对象进行反序列化
    var jsonstr = "{name:'zs',age:12}
    第一种解析的方法:eval("var a = " + jsonstr)
    第二种解析方法:var a = eval("("+jsonstr+")")     这里用()将字符串jsonstr扩起来是因为eval这个方法的自身原因,如果没有括号,这里的eval执行字符串并不会返回一个对象,因为它会认为这里的语句只是一个{}的普通语句,就没有对象返回,a的值就是undefined。
  4. this的使用     和Java中的this差不多,谁调用函数this返回这个对象,若window调用,则返回window对象,也就是script执行代码块的window
    对象中调用this,返回这个对象,也就是这个函数的上级。

 

转载于:https://www.cnblogs.com/yxmgg/p/9052884.html

你可能感兴趣的文章
Ubuntu16.04下配置ssh免密登录
查看>>
实验二 2
查看>>
will-change属性
查看>>
android学习笔记54——ContentProvider
查看>>
Unity3d android开发之触摸操作识别-双击,滑动去噪处理
查看>>
Custom view * is not using the 2- or 3-argument View constructors; XML attributes will not work
查看>>
模型选择准则
查看>>
安卓动态增加按钮
查看>>
iOS7程序后台运行
查看>>
maven+testng+reportng的pom设置
查看>>
IT telephone interview
查看>>
gitlab安装配置
查看>>
ps载入画笔
查看>>
悲怆:IT人的一声叹息->一个程序员的自白[转帖]
查看>>
[SpringMVC]自定义注解实现控制器访问次数限制
查看>>
日记(序)
查看>>
A == B ?
查看>>
洛谷P3763 [Tjoi2017]DNA 【后缀数组】
查看>>
UVa 442 Matrix Chain Multiplication(矩阵链,模拟栈)
查看>>
多种方法求解八数码问题
查看>>