Javascript基础四(数组,字符,对象,日期)
第一节:数组
1.数组的概念及定义
2.数组的创建方式
var arr1 = [1,2,3]; //字面量方式 var arr2 = new Array(1,2,3) //构造函数方式
var arr1 = [5] //表示有一个数组元素5
var arr2 = new Array(5) //表示有5个数组元素,值全部为undefined
3.数组的操作(push/pop/unshift/shift)
var arr = [1,2,3];
arr.push("hello") //在数组的末尾添加元素
arr.unshift("first") //在数组的开始添加元素 arr.pop() //删除最后一位元素
arr.shift() //删除第一个元素
arr.splice(n,m,a......) //从第n个项目开始删除,一共删除m个;a可选,表示在删除的位置添加新元素a arr.slice(n,m) //返回一个新数组,从下标n的位置取到下标m位置的前一个(不包含m),可以实现截取的功能
arr.sort(fn) //对数组进行排序,fn为一个函数,可选;
//当数组内的元素为字符型数字,默认排序已经无法满足,需要手动处理;
//如function fn(n,m){return n-m}
4.数组的遍历(获取数组中的每个元素)
5.整数数组/字符串数组/对象数组/二维数组
6.for-in循环
7.数组的排序(冒泡/选择)
var arr = [5,99,2,9,1,5,67,7,10,23] //定义一个杂乱的数组
for(var i=0;i<arr.length-1;i++){ //大循环,用于遍历数组每个元素
for(var j=0;j<arr.length-i-1;j++){ //小循环,用于将数组中的某个元素与其它所有元素相比较
var sum; //声明一个局部变量,当作第三个空瓶子
if(arr[j]>arr[j+1]){ //判断当前元素和后一个元素的大小,如果当前元素比后一个元素大
sum = arr[j+1]; //将后一个元素(小元素)放在空瓶子里
arr[j+1] = arr[j]; //将当前元素(大元素)放在后一个元素的位置
arr[j] = sum; //将小元素从空瓶子中拿出来,放在当前元素的位置
}
}
}
console.log(arr); //完成循环之后,初始数组的顺序已经发生改变

var arr = [5,99,2,9,1,5,67,7,10,23]
for(var i=0;i<arr.length-1;i++){ //大循环,需要比对的次数
var min = arr[i]; //假定一个最小值
var minIndex = i; //假定最小值的索引
for(var j=i+1;j<arr.length;j++){ //小循环,每次需要比对的次数
if(min>arr[j]){ //判断最小值是否为真的最小值
min = arr[j]; //获取真正的最小值
minIndex = j; //获取真正最小值的索引
}
} arr[minIndex] = arr[i]; //将当前元素放在最小值的位置
arr[i] = min; //将最小值放在当前元素的位置
}
console.log(arr); //输入排序好的数组
8.栈和堆及索引思维
9.值传递和引用传递
var a = 10;
var b = a;
var b = 20;
console.log(a,b);
var a = new Object();
a.name = 10;
var b = a;
b.name = 20;
console.log(a.name,b.name)
var a = {
name:"张三"
}
var b = {
name:"李四"
}
function change(obj){
obj.name = "老张";
obj = b;
return obj;
}
var newName = change(a);
console.log(newName.name);
console.log(a.name);
10.对象的本质和意义
var obj = {
name:"lz",
age:36,
skill:function(){
console.log(1)
}
}
var obj = new Object();
obj.name = "lz";
obj.age = 36
obj.skill = function(){
console.log(1);
}
11.JSON表示对象的方法
var json = [
{
name:"LY",
chinese:99,
math:88
},
{
name:"LY",
chinese:99,
math:88
}
]
第二节:字符
1.ES5新增数组常见方法(indexof/forEach/map/filter)
var arr = ["a","b","c","d","e"];
arr.indexOf("a"); //
//返回当前查询字符所在的位置的下标,如果查询不到,返回-1,start表示从第几位开始查询。
var arr = [2,3,4,5,6,7,8];
arr.forEach(function(value,index,arr){
console.log(value,index,arr);
//函数中的三个参数分别代表,该项的值,该项下标,数组本身
})
var arr = [2,3,4,5,6];
arr.map(function(value,index,arr){
console.log(value,index,arr);
})
var arr = [2,3,4,5,6];
var newArr = arr.map(function(value,index,arr){
return value-1;
})
console.log( newArr ); //得到一个经过计算的数组
var arr = [2,3,4,5,6];
var newArr = arr.filter(function(value,index,arr){
return value > 3;
})
console.log( newArr ); //得到一个经过筛选的数组
2.字符串的两种创建方式(常量和构造函数)
var str = "hello world"; //常量,基本类型创建 var str2 = new String("hello world"); //构造函数创建
3.字符串常见API(indexOf/charAt/substring/slice/split/replace)
4.ASCII码和字符集

5.字符串常见API(charCodeAt\fromCharCode)
第三节:对象
1.什么是对象
2.创建对象
var obj = {} //字面量
var obj2 = new Object() //构造函数
console.log( obj == obj2 ) //false
var obj = { a:10 }
var obj2 = { b:10 }
console.log( obj.a == obj2.b ) //true
var obj = {
name:"admin",
show:function(){
console.log(obj.name);
console.log(this.name);
}
};
obj.show() //admin //admin
var obj = {
name:"admin",
age:23,
like:"篮球"
} delete obj.name;
delete obj.age;
3.对象的深拷贝和浅拷贝
var obj1 = {
name:"admin"
} var obj2 = {};
for(var i in obj1){
obj2[i] = obj1[i];
}
4.内置对象-Math
5.生成范围随机数
6.十进制数字转16进制或8进制
//十进制转其他
var x=110;
console.log(x);
console.log(x.toString(2) + "这是2");
console.log(x.toString(8) + "这是8");
console.log(x.toString(16) + "这是16");
//其他转十进制
var x='110';
console.log(parseInt(x,2));
console.log(parseInt(x,8));
console.log(parseInt(x,16));
//其他转其他
//先用parseInt转成十进制再用toString转到目标进制
console.log(parseInt('ff',16).toString(2));
第四节:日期
1.日期对象
console.log(d.getFullYear()); //获取年
console.log(d.getMonth()); //获取月,注意月份是从0开始
console.log(d.getDate()); //获取日
console.log(d.getDay()); //获取周 console.log(d.getHours()); //获取小时
console.log(d.getMinutes()); //获取分钟
console.log(d.getSeconds()); //获取秒数
console.log(d.getMilliseconds());//获取毫秒
console.log(d.getTime()); //获取从1970年1月1日至今的毫秒 console.log(d) //返回本地时间,包含年月日星期时分秒
var d = new Date();
d.setFullYear(2009); //设置年
d.setMonth(6); //设置月,超过11,累加年
d.setDate(27); //设置日,超过最大日期,累加月
d.setHours(40); //设置小时,超过24,累加天
d.setMinutes(40); //设置分钟,超过60,累加小时
d.setSeconds(40); //设置秒,超过60,累加分钟
d.setMilliseconds(40); //设置毫秒,超过1000,累加秒 d.setTime(10000) //设置从1970年1月1日过去了多少毫秒 console.log(d) //返回更改后的年月日 时分秒
2.延时器和计时器
Javascript基础四(数组,字符,对象,日期)的更多相关文章
- Javascript基础学习(3)_对象和数组
一.对象是一种无序的属性集合,每个属性都有自己的名字和值. 1.创建对象 花括号内逗号分隔 var person = { "Name" : "LiCheng", ...
- JavaScript 基础四
遍历对象的属性 for...in 语句用于对数组或者对象的属性进行循环操作. for (变量 in 对象名字) { 在此执行代码 } 这个变量是自定义 符合命名规范 但是一般我们 都写为 k 或则 k ...
- JavaScript 基础回顾——数组
JavaScript是无类型语言,数组元素可以具有任意的数据类型,同一个数组的不同元素可以具有不同类型.数组的元素设置可以包含其他数组,便于模拟创建多维数组. 1.创建数组 在JavaScript中, ...
- JavaScript基础四
1.13 Js中的面向对象 1.13.1 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或 ...
- javascript基础编程の变量、对象、数据类型及函数
在web标准中.网页由结构.表现形式和行为三个部分组成. 结构标准---->XHTML: 表现形式标准----->CSS: 行为标准----->javascript: javascr ...
- JavaScript基础04——数组的创建及方法
数组的概念及定义 数组的概念: 一组数据,数据的组和 哪些数据的组和,只要是数据(所有数据),就可以放在数组中 数组的意义: 可以同时操作多个数据 数组 ...
- javascript之自定义数组工具对象
<pre name="code" class="html">/* 需求:编写一个js文件,在js文件中自定义一个数组工具对象, 该工具对象要有一个找 ...
- JavaScript中,数组和对象的遍历方法总结
循环遍历是写程序很频繁的操作,JavaScript 提供了很多方法来实现. 这篇文章将分别总结数组和对象的遍历方法,新手可以通过本文串联起学过的知识. 数组遍历 方法一:for 循环 for 循环是使 ...
- JavaScript中遍历数组和对象的方法
js数组遍历和对象遍历 针对js各种遍历作一个总结分析,从类型用处,分析数组和对象各种遍历使用场景,优缺点等 JS数组遍历: 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3 ...
随机推荐
- 记一次sql索引颠覆认知
首先先建立数据库和插入数据 我们要查询的命令如下,前提是以mysql数据库为准 , 结果和我想的不太一样,先准备好环境和所需的数据库和表 准备阶段 CREATE TABLE `test` ( `id` ...
- Spring Cloud Contract简介
转载:https://www.jianshu.com/p/e3277824a10a 和dummy service一样 Spring Cloud Contract是个啥? Spring Cloud Co ...
- Git--09 创建Maven项目
目录 1. 创建Maven项目 2.创建Maven私服nexus 01. 部署Maven 02. 编译测试 03. 部署Tomcat及数据库 04. 创建一个jeesns项目 05. Jenkins创 ...
- C# List和DataTable的相互转换
1.List转DataTable /// <summary> /// list to datatable /// </summary> /// <typeparam na ...
- 罗技K380使用手册
Ipad最佳伴侣|码字神器|罗技K380|附使用指南 ———— 为了方便平时在家处理工作➕写小红书笔记,年初买了个Ipad2018 我以前买过一个罗技的K480,因为太重了不方便携带,于是又入了K38 ...
- Redis GeoHash
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11632810.html 背景 微信找附近的人,滴滴找附近的单车,饿了么找附近的餐馆 GeoHash算法 ...
- eval函数让我忧伤
今天首次接触这个eval函数,让我忧伤了一把.我把当成字符串拼接,结果错得天远地远.大体情况是下面这句代码,一个劲的给我报NameError: name 'qinfeng' is not define ...
- Struts2基础-4-2 -struts拦截器实现权限控制案例+ 模型驱动处理请求参数 + Action方法动态调用
1.新建项目,添加jar包到WEB-INF目录下的lib文件夹,并添加到builde path里面 整体目录结构如下 2.新建web.xml,添加struts2核心过滤器,和默认首页 <?xml ...
- 多任务Multitask Learning
一次只学习一个任务,大部分机器学习都属于单任务学习. 多任务学习:把多个相关的任务放在一起学习,同时学习多个任务. 对于复杂的问题,可以分解为简单的相互独立的子问题来解决,然后再合并结果,得到最初复杂 ...
- paper 158:CNN(卷积神经网络):Dropout Layer
Dropout作用 在hinton的论文Improving neural networks by preventing coadaptation提出的,主要作用就是为了防止模型过拟合.当模型参数较多, ...