一、JS中的数组

1.数组的三种定义方式

(1)、实例化对象

var aArray=new Array(1,2,3,4,5);

(2)、快捷创建

var aTwoArray = [1,2,3,"d","f"];

(3)、多维数组

var aThreeArray = [[1,2,3],["a","b","c"]];

在这里,只有满足了数组中的元素是数组的时候才是多维数组

2.数组的操作

(1)、给数组增加单个或者多个元素

数组.push(元素1,元素2...)

(2)、修改数组中的元素

数组[角标]=数据;

(3)、删除数组中的元素

删除数组最后一个元素
            数组.pop()

删除指定位置的元素

//第一个4表示 开始的角标包含4   2表示 删除的个数
aOneArray.splice(4,2);
// 1是开始角标 2是删除个数 剩下的都是新增元素
aOneArray.splice(1,2,"g","h","i");

如果想向数组中指定位置添加元素,可以这样写:

数组.splice(位置,0 ,元素);新增的元素会占据在指定起始角标上

(4)、获取数组中的元素

var sStr = aOneArray[4];

(5)、获取数组的长度

数组.length();

(6)、反转数组

数组.reserve();

(7)、获取元素在数组中的角标以及判断元素是否存在与数组中

数组.indexof(元素);

返回的值就是元素在数组中的角标,如果值为-1,则说明该元素不存在于该数组中

(8)、将数组中的元素拼接成字符串

            将数组拼接成字符串 字符串=数组. join() 不改变原有数组 字符串用变量接收
            默认以逗号连接
            join(‘ ’) 不加任何拼接内容

二、循环语句

1.if语句

2.for语句

3.while语句

4.do-while语句

5、使用循环去遍历数组,从而对数字元素进行操作以及对数组元素的去重

三、类型转换

parseInt 转换成整数number类型 如果存在小数部份会直接去掉,不会四舍五入

parseFloat 转换成小数类型,如果没有小数部份,也不会自动加小数部份,毕竟小数的范围比整数大

NaN(Not a Number)是非数据类型,这是当类型转换失败时浏览器反馈的一个错误信息

四、字符串的操作

1.字符串的拼接

在JavaScript中,字符串的拼接并不像python中要求那么严格,拼接符号用+号,只要+号两端有任意一个元素是字符串,就会进行字符串拼接的运算,即字符串+整数=字符串,而如果+号两端都是数字类型的元素,则拼接不复存在,只会进行加法运算

2.字符串的分割与截取

一个字符串可以被分割或截取成不同的片段,但是不管怎么分割截取,原本的字符串都不会改变,毕竟字符串是不可变数据类型。分割出来的部份存在其他新命名的变量中就行了。

substring(start,end) 写上开始角标和结束角标,就会从开始角标开始截取,一致截取到结束角标,但是不包括结束角标所在元素

substring(start)只写一个start开始角标 说明从开始角标一直截取到字符串的末尾

3.把字符串拆分成数组

在此需要强调一点:字符串本质上就是一种字符数组,所以才能和数组进行互相的转换

数组=字符串.split() 不指定分割符,会把整个字符串当作一个整体的元素存在数组中

数组=字符串.split(' ') 指定一个空字符作为分隔符,会把字符串的每一个字符拆分成一个元素

数组=字符串.split('-') 指定一个分隔符,此分隔符必须是字符串中的一个字符,这样就会以该分隔符为分割线来分割字符串,如果该分隔符不是字符串中的字符,那么这样相当于没有指定分隔符,还是会把字符串当成一个整体的元素存到数组中,并不会报错。

4.获取字符在字符串中的角标

var iIndex=字符串.indexof('字符');

返回的数据就是该字符在字符串中角标,但是如果返回的值是-1,说明该字符不存在与字符串中

这也给判断某个字符是否存在于字符串中提供了方法

5.倒置字符串

将一个字符串倒序输出,并没有直接的方法,但是数组有倒置的方法,因此,提供一下思路:

  1. 将字符串使用split方法转换成数组
  2. 将数组使用reserve方法倒置
  3. 再将数组使用join方法转换成字符串即可
链式编程如下:
字符串.split(' ').reverse().join(' ')

五、定时器

1.只执行一次的定时器

定义:setTimeout(功能,时间(毫秒))

销毁:

oTimer=setTimeout(功能,时间(毫秒));

clearTimeout(oTimer);

2.重复执行的定时器

定义:setInterval(功能,时间(毫秒))

销毁:

oInterval=setInterval(功能,时间(毫秒));

clearInterval(oInterval);

六、其他知识点

1.在JS中部分小数相加会出现都是精度的问题,如0.1+0.2=0.33333333333333.....

如果想避免精度丢失,可以先将小数转换为整数,然后再将结果转换为小数,就可以避免这种现象

JavaScript高级知识点整理的更多相关文章

  1. JavaScript基本知识点整理(超实用)

      絮叨絮叨                   今天给大家分享一下这两天自己整理的JavaScript部分的笔记,下面都是我觉得比较常用的,希望能帮助到大家! 1. 导入JS的三种方式 ①在HTML ...

  2. javascript高级知识点——闭包

    代码信息来自于http://ejohn.org/apps/learn/. 先给出一个权威的定义,函数对象可以通过作用域相互关联起来,函数体内的变量可以保存在函数的作用域内,这种特性称为闭包. 在闭包内 ...

  3. javascript 完整知识点整理

    by 蔡舒啸 目录 一 5种基本类型 typeof 关键字 三种强制类型转换 日期 二 if语句for语句whiledo-whileswitch-case 比较运算符 逻辑运算符 if for语句 w ...

  4. javascript学习(知识点整理)

    有了这个代码,就可以在定义 中增加更多的控制了 后面会举例关于extjs定义的更多控制     此种方案可以解决定义时需要一些函数调用的情况 函数作用域和声明提前: 即由于js是解释性语言,在执行前会 ...

  5. javascript高级知识点——memoization

    memoization是一种非常有用的优化技术,它缓存特定输入产生的相应结果.这样麻烦的查找和迭代计算可以尽可能的减少. 它基本的思想是针对特定的输入,已经计算过的结果都是通过缓存当中的数据直接返回而 ...

  6. javascript高级知识点——函数的长度

    代码信息来自于http://ejohn.org/apps/learn/. 函数的长度属性如何工作? function makeNinja(name){} function makeSamurai(na ...

  7. javascript高级知识点——指定上下文实现

    代码信息来自于http://ejohn.org/apps/learn/. 当我们将一个对象的点击事件绑定到一个事件触发元素时会发生什么? <ul id="results"&g ...

  8. javascript高级知识点——内置对象原型

    代码信息来自于http://ejohn.org/apps/learn/. 可以修改内置对象的方法. if (!Array.prototype.forEach) { Array.prototype.fo ...

  9. javascript高级知识点——继承

    代码信息来自于http://ejohn.org/apps/learn/. 继承是如何工作的 function Person(){} function Ninja(){} Ninja.prototype ...

随机推荐

  1. 全球知名的HTTPS网站检测工具-Qualys SSL Labs

    推荐一个在线版全球知名的HTTPS网站检测工具-Qualys SSL Labs.Qualys SSL Labs同时也是很具有影响力的SSL安全和性能研究机构. SSL Labs会对HTTPS网站的证书 ...

  2. 反射ORM 三层(for oracle)

    sql server and oracle 不同之处只在于: 1·参数@和: 2·自增和序列 3·oracle使用了存储过程以获得当前插入数据的ID DAL层的ORM using Oracle.Dat ...

  3. HTML 和 CSS

    HTML html是英文hyper text mark-up language(超文本标记语言)的缩写,它是一种制作万维网页面标准语言.   内容摘要   Doctype 告诉浏览器使用什么样的htm ...

  4. 2018年长沙理工大学第十三届程序设计竞赛 J杯子

    链接:https://www.nowcoder.com/acm/contest/96/J来源:牛客网 杯子 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言655 ...

  5. ManualResetEvent 用法

    第一.简单介绍 ManualResetEvent 允许线程通过发信号互相通信.通常,此通信涉及一个线程在其他线程进行之前必须完成的任务.当一个线程开始一个活动(此活动必须完成后,其他线程才能开始)时, ...

  6. Celery-4.1 用户指南: Concurrency (并发)

    简介 Eventlet 的主页对它进行了描述:它是一个python的并发网络库,可以让你更改如何运行你的代码而不是怎么编写代码. 对高可扩展非阻塞IO操作,它使用 epoll或者libevent. C ...

  7. Windows安装mysql 5.7.*.zip步骤

    1.去官网上下载.zip格式的文件. 2.解压到一个文件夹,这里我用D:\MySql表示 3.在D:\MySql\mysql-5.7.17-winx64下新建my.ini配置文件 黄色背景色的地方需要 ...

  8. 11-09SQLserver 基础-数据库之汇总练习45题

    设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表 ...

  9. 问题:Server.MapPath;结果:Server.MapPath的命名空间

    习惯用Access的朋友都知道:ADO.NET链接Access数据库经常这么写:strcon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&q ...

  10. 配置mysql 问题解决

    问题 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--s ...