JS中substr和substring的用法和区别

substr和substring都是JS截取字符串函数,两者用法很相近,

  • substr方法
    返回一个从指定位置开始的指定长度的子字符串。
    string.substr(start[,length])
    注意: length可选项。如length为0或负数,将返回一个空字符串。如果没有指定该参数,
    则子字符串到string的最后。

  • substring 方法
    返回位于String对象中指定位置的子字符串。
    string.substring(start,end)
    注意:
    substring方法将返回一个包含从 start到最后(不包含end)的子字符串的字符串。

  • 示例代码
    var str="I love JS!";//有一个str字符串,如想获取JS子字符串,用两种方法如何实现。
    str.substr(7,2); //获取子字符串
    str.substring(7,9); //获取子字符串

区别:第二参数,substr第二个参数是获取子字符串的长度,
substring第二个参数是获取子字符串的结束位置。

  • 注意事项
    substr和substring两个函数截取带有空格的字符串后的长度是每个空格算一个字符长度。例如:
    var a = "I am imooc!";
    a.substring(0, 5).length的值是5,而不是4,但alert(a.substring(0, 5));的值却是I am ,这样在做alert("I am" == a.substring(0, 5));的时候就是false了,alert("I am" == a.substring(0, 4));才是true。

++a 与 a++的区别

a++是运算后自增,而++a是自增在运算(即++a先自加再去值,a++先取值在自加)

相同点:
a++ 和 ++a中,i的值自增1,也就是a=a+1;

不同点:
a++: 把(a++)作为一个整体表达式,a的值虽然自增1,但是整个表达式的值是取a自增之前的值;
++a: 也把(++a)作为一个整体表达式,a的值也自增1,但是整个表达式的值是取a自增之后的值。
看实例:
m=a++ 相当于 m=a,a=a+1
m=++a 相当于 a=a+1,m=a 这种自加运算和自减运算,都相当于两步骤

总结: a++ 是先把 a 赋值,然后自己加一, ++a,是先自己加一,然后再把 a 赋值。

JS 中“===”与 “==”比较的区别

  1. ==用于一般比较,==在比较的时候可以转换数据类型。
  2. ===用于严格比较,===严格比较,只要类型不匹配就返回flase。
  • 看一个简单的例子:

给定 x=5

== 等于 x==8 为 false
=== 全等(值和类型) x===5 为 true;x==="5" 为 false

js 进阶笔记的更多相关文章

  1. React.js入门笔记

    # React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...

  2. javascript进阶笔记(2)

    js是一门函数式语言,因为js的强大威力依赖于是否将其作为函数式语言进行使用.在js中,我们通常要大量使用函数式编程风格.函数式编程专注于:少而精.通常无副作用.将函数作为程序代码的基础构件块. 在函 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. 2. web前端开发分享-css,js进阶篇

    一,css进阶篇: 等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践经验, 简单的想法:把qq首页全屏另存为jpg然后通过ps工具切图结合css转换成html,有无从下手 ...

  5. Vue.js学习笔记(2)vue-router

    vue中vue-router的使用:

  6. js读书笔记

    js读书笔记 基本类型的基本函数总结 1. Boolean() 数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 "&q ...

  7. JS 学习笔记--9---变量-作用域-内存相关

    JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...

  8. 【 D3.js 进阶系列 】 进阶总结

    进阶系列的文章从去年10月开始写的,晃眼又是4个多月了,想在年前总结一下. 首先恭祝大家新年快乐.今年是羊年吧.前段时间和朋友聊天,聊到十二生肖里为什么没猫,我张口就道:不是因为十二生肖开会的时候猫迟 ...

  9. web前端开发分享-css,js进阶篇

    一,css进阶篇: 等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践 经验, 简单的想法:把qq首页全屏另存为jpg然后通过ps工具切图结合css转换成html,有无 从 ...

随机推荐

  1. JQuery 获取指定url对应的html内容

    用jquery的ajax类似的请求就可以了:比如: $.get("test.php", function(data){ alert("Data Loaded: " ...

  2. css中的伪类

    伪类用于向某些选择器添加一些特殊效果. 1):focus 伪类在元素获得焦点的时向元素添加特殊样式.一般用于输入文本域,按钮,以及超链接. a:focus{color:red;}超链接字体为红色 in ...

  3. Linux 与 unix shell编程指南——学习笔记

    第一章    文件安全与权限 文件访问方式:读,写,执行.     针对用户:文件属主,同组用户,其它用户.     文件权限位最前面的字符代表文件类型,常用的如         d 目录:l 符号链 ...

  4. c#窗体的传值方法

    了解了窗体的显示相关知识,接着总结一下窗体的传值方法:  .通过构造函数  特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中         int value1;  ...

  5. C++文件

    参考: C++文件读写详解(ofstream,ifstream,fstream):http://blog.csdn.net/kingstar158/article/details/6859379 fs ...

  6. 记录一下C#+Oracle批量插入的一个方法

    public bool insertOracle(DataTable dataTable, string sql) // Oracle sql 查询的是表头 { string ConnStr = Wi ...

  7. IE6 双倍距BUG

    IE6双倍距BUG的形成: 1.快元素 2.元素浮动 3.margin左右 解决方案:_display:inline;

  8. ZendFramework2 源码分析 index.php

    <?php /** * This makes our life easier when dealing with paths. Everything is relative * to the a ...

  9. [原]此程序专用来说明C++模板的用法

    #include using namespace std; //此程序专用来说明模版的使用 template void swap1(T& a,T& b){     T temp=a; ...

  10. 嵌入式系统USB CDROM虚拟光驱驱动程序开发

    带U盘功能的的USB接口设备已经越来越常见了.如果能够把产品说明书或者产品设备驱动程序做成一个USB CDROM,那该多方便.假设:你已经有了USB mass storage驱动.你的任务是在此基础上 ...