Function类型

Es5中规范了另一个函数对象的属性:caller,这个属性中保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,这它的值为null

function outer(){Inner();}function inner(){alert(inner.caller)}outer();

inner.caller指向outer

为了实现更松散的耦合 也可以通过arguments.callee.caller来访问相同的信息,如下代码:

  function outer(){inner();}function inner(){alert(arguments.callee.caller)}outer();

es中函数是对象,因此函数也有属性和方法,每个函数到包含两个属性:length和prototype,其中length属性表示函数希望接收的命名参数的个数

对于es中的引用类型而言,protorype是保存它们所有实例方法的真正所在,换句话说,诸如toString和valueOf等方法实际上都是保存在prototype名下,只不过是通过各自对象的实例反问罢了,es5中,prototype属性是不可枚举的,因此使用for-in无法发现,

每个函数都包含两个非继承而来的方法:apply和call

apply方法接收两个参数:一个是在其中运行函数的作用域,另一个是参数数组(技巧可以用个方法将参数是逗号的转化为数组)

call方法与apply方法的作用项目,他们的区别仅在于接收参数的方式不同,对于call方法而言,第一个参数是this值没有变化,变化的是其余参数都直接传递给函数.

var s1=”some text”;var s2=s1.substring(2);

这段代码其实做了如下操作:

1\ 创建String 类型的一个实例

2\ 在实例上调用制定的方法

3\ 销毁这个实例

可以将以上三个步骤想象成执行下列se代码.

var s1=new String(“some text”);var s2=s1.substring(2);s1=null; 

引用类型和基本包装类型的主要区别就是对象的生存期,使用new 操作符穿件引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中,而自读创建的基本包类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁,例如:

var s1=”some text”;s1.color=”red”;alert(s1.color)//undefined

String 类型

  1. 字符方法

charAt和charCodeAt,这两个方法都接收一个参数,即基于0的字符围着,其中,charAt方法单字符字符串的形式返回给定围着的那个字符.

charCodeAt返回的是字符编码

  1. 字符串操作方法:

concat:用于将一或多个字符串拼接起来,返回拼接得到的新字符串.

slice:第一个参数指定子字符串的开始位置,第二个参数书字符串到哪里结束,传负值时是从后面开始截取

substring: 第一个参数指定子字符串的开始位置,第二个参数书字符串到哪里结束,传负值时截取全部

substr: 第一个参数指定子字符串的开始位置,第二个参数指定的则是返回的字符串个数

  1. 字符串位置方法

IndexOf和lastIndexOf这两个方法都是从一个字符串中搜索给定的子字符串,然后返子字符串的位置,这两个方法的区别在于:indexOf方法从子字符串的开头向后搜索字符串,而lastIndexOf方法是从字符串的末尾向前搜索子字符串

  1. trim方法

es5位字符串添加了trim方法,这个方法会创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果.

  1. 字符串大小写转换方法
  2. 大小写转换方法有:

toLowerCase()//小写,toLocaleLowerCase()//小写,toUpperCase()//大写和toLocaleUpperCase()//大写

  1. 字符串的模式匹配方法

match方法是在字符串上调用这个方法,本质上与调用RegExp的exec方法相同,只接受一个参数.

search方法是用于查找,一个参数,由字符串或RegExp对象指定的一个正则表达式,search方法返回字符串中第一个匹配项的索引.

localeCompare() 方法比较两个字符串,并返回下列值中的一个

  • l 如果字符串在字母表中应该排在字符串参数之前,则返回一个负数,
  • l 如果字符串等于字符串参数则返回0
  • l 如果字符串在字母表中应该排在字符串参数之后,则返回一个正数

Global对象

1、 URI编码方法

Global 对象的 encodeURI()和encodeURIComponent方法可以对URI进行编码,以便发送给浏览器,有效的URI中不能包含某些字符串,例如空格,而这两个URI编码方法就可以对URI进行编码,他们用特殊的UTF-8编码替换所有无效的字符,从而让浏览器能够接受.

他们的区别在于:encodeURI不会对本身属于URI的特殊字符进行编码,例如冒号,正斜杠,问号和井号,而encodeURIComponent则会对它发现的任何非标准字符串进行编码

2、 eval

eval方法就像是一个完整的es解析器,它只接受一个参数,即要执行js字符串

3、 Math对象

min和max方法:

它们用于确定一组数值中的最小值和最大值,这两个方法都可以接收任意多个数值参数.

可以利用apply方法可以把数值作为参数传入min和max中,例如:

var values=[1,2,3,4,5,6,7,8];

var max=Math.max.apply(Math,values);

这个技巧的关键是把Math对象作为apply的第一个参数,从而正确地设置this值,然后可以将任何数值作为第二个参数.

Math.cell()执行向上舍入,即它总是将数值向上舍入为最接近的整数

Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数

Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数

Math.random方法返回0和1之间一个随机数,不包括0和1,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件,套用下面的公司就可以利用Math.random从某个整数范围中随机选择一个值.

值=Math.floor(Math.random()*可能值的总数+第一个可能的值)

转载于:https://www.cnblogs.com/hetaojs/p/6051990.html

javascript高级编程笔记04(基本概念)相关推荐

  1. NDK 高级编程(笔记)

    Android 开发中针对 NDK 的书籍很少,<Pro Android C++ with the NDK>也是出版的比较早的一本书,有些内容可能对现在的开发并不适用.但是书中介绍的内容比 ...

  2. JavaScript 高级编程(二)

    JavaScript 高级编程(二) BOM 一套操作浏览器的API. 常见对象 window: 代表整个浏览器窗口 注意: window是BOM中的一个对象, 并且是一个顶级的对象(全局) Navi ...

  3. JavaScript高级编程 III

    原文地址:http://www.onlamp.com/pub/a/onlamp/2007/11/20/advanced-javascript-iii.html JavaScript高级编程I:http ...

  4. 【读书笔记】JavaScript高级编程(二)

    2019独角兽企业重金招聘Python工程师标准>>> 书中第3章 基本概念摘要(一) 3.3 变量 使用var操作符定义的变量将成为定义该变量的作用域中的局部变量.也就是说,如果在 ...

  5. JavaScript高级编程设计(第三版)——第三章:基本概念

    系列文章目录 第二章:在html中使用javaScript 第三章:基本概念 第四章:变量作用域和内存问题 目录 系列文章目录 前言 一.语法 1.标识符 2.关键字和保留字 二.数据类型 1.nul ...

  6. Unix环境高级编程 笔记

    Unix环境高级编程(第二版)学习笔记 这是一次较长时间的整理,然而跳跃了一些章节和很多知识点,仍然是很不完善很不全面的. 前言 操作系统某些问题 严格意义上,可将操作系统定义为一种软件,它控制计算机 ...

  7. javascript高级编程教程,javascript基础入门案例

    谁有比较好的javascript视频教程 李炎恢的javascript教程,在verycd上可以下载. 结合<javascript高级程序设计>学习,应该会比较好,他这个教程就是参考了&l ...

  8. UNIX环境高级编程笔记之文件I/O

    一.总结 在写之前,先唠几句,<UNIX环境高级编程>,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是"哇"这种很吃惊的表情.其实大概三年前,那会 ...

  9. UNIX环境高级编程笔记

    1.setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &opt, len);   SO_REUSEADDR套接口选项允许为以下四个不同的目的提供服务:   ...

  10. UINX环境高级编程笔记 第3章 文件I/O

    UNIX环境高级编程 第三章 文件I/O 3.1 引言 3.2 文件描述符 3.3 函数open和openat 3.4 函数creat 3.5 函数close 3.6 函数lseek 3.7 函数re ...

最新文章

  1. Java8的集合:ArrayList的实现原理
  2. 5.4任务进展情况(整理——郑云飞)
  3. requests(一): 发送一个json格式的post请求
  4. 微服务访问安全设计方案全探索
  5. python怎么导入本地文件_Pycharm中如何导入本地Python环境
  6. mysql 拼音查询_mysql实现用拼音搜索中文的数据库实现
  7. Log4j的自定义logger
  8. LeetCode 2121. 相同元素的间隔之和(前缀和)
  9. 杨辉再发声明:承认听取付向东报告后受其“鼓舞”,为没及时沟通向其致歉...
  10. App Store新规即将到来 你准备好了吗?
  11. React使用iconfont阿里巴巴矢量图库
  12. H5拍照、选择图片上传组件核心
  13. macbook买后配置
  14. leetcode1646. 获取生成数组中的最大值
  15. 注意了!朋友圈发一张照片,是如何泄露你的地址信息的?
  16. Web网站模板-响应式企业产品介绍模板(HTML+CSS+JavaScript)
  17. 最新互普威盾4.62.0415 IPguard4.62电脑行为管理 各类文件加密解密 威盾4.61 IP-guard4.62 威盾4.54 IP-guard3.5 IPguard4.5
  18. 如何解决ChemDraw引起的系统崩溃
  19. [附源码]JAVA+ssm计算机毕业设计电影院购票系统(程序+Lw)
  20. 《FLUENT 14.0超级学习手册》——2.5 FLUENT 14.0的基本操作

热门文章

  1. 使用dumpbin查看dll有哪些函数
  2. 公开标准不赚钱,认证赚大钱
  3. 如何证明人的记忆力是无限的
  4. 安装了opencv,怎么一直报错:找不到CAP_PROP_FRAME_COUNT
  5. C++ 编译器生成默认构造函数的四种情况
  6. android shell强制删除文件夹_手机文件夹都是英文,看不懂、又不敢删?教你如何辨别、释放内存...
  7. python之定义默认参数_035-Python之定义默认参数
  8. nginx 日志正则分割
  9. python subprocess 非阻塞_python中subprocess.PIPE上的非阻塞读取
  10. HOOK(钩子,挂钩)