Js笔记-第17课
课
// 作业
//深度拷贝
var
obj = {
name:'rong',
age:'25',
card:['visa','alipay'],
nam :['1','2','3','4','4']
}
function
clone (orig,target){
var
target = target||{};
var
arrstr= '[object Array]';
for(var
prop
in
orig){
if(orig.hasOwnProperty(prop)){
if (typeof(orig[prop]) == 'object'){
if((Object.prototype.toString.call(orig[prop])) == arrstr)
{
target[prop] = [];
}else{
target[prop] = {};
}
clone(orig[prop],target[prop]);
}else{
target[prop] = orig[prop];
}
}
}
return
target;
}
var
obj1 = {};
clone(obj,obj1);
//三步运算符
?:
判断条件
是
则走前面
否
则走后边
//简化代码
var
obj = {
name:'rong',
age:'25',
card:['visa','alipay'],
nam :['1','2','3','4','4']
}
function
clone (orig,target){
var
target = target||{};
var
arrstr= '[object Array]';
for(var
prop
in
orig){
if(orig.hasOwnProperty(prop)){
if (typeof(orig[prop]) == 'object'){
target[prop] = ((Object.prototype.toString.call(orig[prop])) == arrstr)?
[]:{};
clone(orig[prop],target[prop]);
}else{
target[prop] = orig[prop];
}
}
}
return
target;
}
var
obj1 = {};
clone(obj,obj1);
//toString s必须大写
// hasOwnProperty
// Object.prototype.toString.call O大写
//数组操作方法
// push()---从数组最后一位开始插入数据(参数)
返回值为数组长度
// pop()----剪切数组最后一位数据
(没有参数,返回值为最后一位数据)
// unshift() ----从数组第一位插入数据
// shift() ----剪切数组第一位数据
// splice() 从第几位开始,截取多少长度,在切口处添加新数据,添加的数据长度不一定等于截取的数据,返回值为截取数据组成的数组
// reverse() 数字逆转顺序
返回逆转后的数组
// sort()
// 对数组进行排序,返回值为改变后的数组,按照字符串的ascall码排序,空值为默认值,升序排列
// 参数必须为函数
// 1、必须写俩形参
// 2、看返回值,当返回值为负数时,那么前面的数放前面
// 为正数,那么后边的数放在前面
,不动
// concat 链接两个数组
并返回一个新数组,原数组不变 arr.concat(arr1) ,将arr1数组内容加到arr后边,返回一个新数组
个
从第一位开始截取到第3位(含)并返回截取部分数组,原数组不改变,一位参数为从第n位开始
// 截取到末位,无参数为截取整个数组
// jion('-') 参数为字符串,按照字符串中内容为连接符连接数组,返回一个字符串
// split('-') 按照参数将字符串拆分成字符串
与jion逆操作
// 类数组
// 属性要为索引(数字)
属性,必须有length属性,最好有push方法
// 作业
// 封装typeof
// typeof的返回值共有六种:
// number, boolean, string, undefined, object, function.
// number
// typeof(10);
// typeof(NaN);
// //NaN在JavaScript中代表的是特殊非数字值,它本身是一个数字类型。
// typeof(Infinity);
//
/////////2.boolean
// typeof(true);
// typeof(false);
//////// 3.string
// typeof("abc");
// ///////4.undefined
// typeof(undefined);
// typeof(a);//不存在的变量
// ///////5.object
// 对象,数组,null返回object
// typeof(null);
// typeof(window);
// //////6.function
// typeof(Array);
// typeof(Date);
//分类 number string boolean function undefind 无需判断
只需判断object
function
type(a) {
if(typeof(a) !=="object"){
return
typeof(a);
}else {
return
Object.prototype.toString.call(a);
}
}
// 数组去重
// 要求在原型链编程
Array.prototype.unique = function (){
var
b = [];
for(var
i = 0; i < this.length; i++){
for(var
j = 0;j < b.length; j++){
if(this[i] === b[j])
{break;}
}
if(j == b.length){b.push(this[i])}
}
return
b;
}
//利用对象的特性,属性名不能重复,为每个属性赋值,依次判断是否有值
Array.prototype.unique = function (){
var
obj = {},
arr = [],
len = this.length;
for(var
i = 0;i < len; i++ ){
if(!obj[this[i]]){
obj[this[i]]= "1";
//判断obj中this[i]是不是undefind,如果是
就说明此属性名没有,则赋值1,
arr.push(this[i]);
}
}
return
arr;
}
//函数形式
// function test (a){
// var b = [];
// for(var i = 0; i < a.length; i++){
// for(var j = 0;j < b.length; j++){
// if(a[i] === b[j])
// {break;}
// }
// if(j == b.length){b.push(a[i])}
// }
// return b;
// }
Js笔记-第17课的更多相关文章
- 奇舞js笔记——第0课——如何写好原生js代码
摘要 1.好的代码职责要清晰,javscript不要用来操作样式: 2.API要设计的合理:通用性,适度的抽象(数据抽象,过程抽象),可扩展性: 3.效率问题:用好的.合适的算法(前端程序员要把自己当 ...
- Js笔记-第11课
// 第11课 作用域精解 运行期上下文,当函数执行时,会创建一个成为执行期上下文的内部对象.一个执行期上下文定义了一个函数执行时的环境,函数每次执行时对应的执行期上下文都是独 ...
- CoolBlog开发笔记第2课:搭建开发环境
教程目录 1.1 CoolBlog开发笔记第1课:项目分析 前言 今天是CoolBlog开发笔记的第2课,我们将要讲解的是开发环境的搭建.俗话说"工欲善其事必先利其器",Djang ...
- CoolBlog开发笔记第4课:数据库模型设计
教程目录 1.1 CoolBlog开发笔记第1课:项目分析 1.2 CoolBlog开发笔记第2课:搭建开发环境 1.3 CoolBlog开发笔记第3课:创建Django应用 前言 我新书<Py ...
- CoolBlog开发笔记第5课:请求与响应
教程目录 1.1 CoolBlog开发笔记第1课:项目分析 1.2 CoolBlog开发笔记第2课:搭建开发环境 1.3 CoolBlog开发笔记第3课:创建Django应用 1.4 CoolBlog ...
- SQL 必知必会-- 第17课:创建和操作表
我这里用的是oracle 10g,PL/SQL来做的. 第17课 创建和操纵表 14517.1 创建表 14517.2 更新表 15017.3 删除表 15317.4 重命名表 1 ...
- Android菜鸟的成长笔记(17)—— 再看Android中的Unbounded Service
原文:Android菜鸟的成长笔记(17)-- 再看Android中的Unbounded Service 前面已经写过关于startService(Unbounded Service)的一篇文章:&l ...
- CoolBlog开发笔记第3课:创建Django应用
教程目录 1.1 CoolBlog开发笔记第1课:项目分析 1.2 CoolBlog开发笔记第2课:搭建开发环境 前言 经过上一节我们已经创建了CoolBlog工程,但是关于CoolBlog的功能代码 ...
- 第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数
第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; ...
随机推荐
- java使用Robot类在eclipse上实现自动编写代码
运行时,把输入法关掉,切换成系统自带的输入法即可: 第二个类是自定义的键值Map集合,主要是为了方便输入字符串,有需要的可以自行添加: 主要的代码如下,会创建一个名称为Automaton.java的类 ...
- python 之 日志输出格式
# 定义日志文件的路径LOG_PATH=r'D:\code\SH_fullstack_s1\day15\ATM\log\access.log'BOSS_LOG_PATH=r'D:\code\SH_fu ...
- Sublime Text 快捷键的使用
Sublime Text 快捷键的使用 快捷键列表(Shortcuts Cheatsheet) 我把本文出现的Sublime Text按其类型整理在这里,以便查阅. 通用(General) ↑↓←→: ...
- Hibernate 继承映射可能会遇到的错误
问题: 我们在配置hibernate的时候,默认是会配置下面的两个属性的 <property name="hibernate.default_catalog">hibe ...
- C.One Piece
链接:https://ac.nowcoder.com/acm/contest/908/C 题意: Luffy once saw a particularly delicious food, but h ...
- HDU-1498-50years,50colors(最大匹配, 枚举)
链接:https://vjudge.net/problem/HDU-1498#author=634579757 题意: 撞气球游戏,一个n*n的矩阵中,有不同颜色的气球,气球的颜色最多50种(从1到5 ...
- [干货分享]AXURE整套高保真UI框架和元件组(白色风格)
写在前面 强烈建议开始之前阅读以下第一篇高保真UI框架的前面部分,以了解设计思想,这篇文章不再重复介绍: AXURE-整套可复用的高保真元件和框架之暗黑风格 本次共享模板的UI规范 注:由于篇幅问 ...
- java 通用查询框架Querydsl 简介
Querydsl 是一个通用的查询框架,专注于通过JavaAPI构建类型安全的SQL查询说说Querydsl的优势吧: 1. Querydsl支持代码自动完成,因为才纯Java API编写查询,因此主 ...
- vue or react mvvm里的文字上下滚动
1.jQuery 时候实现 上下滚动很简单,基本上一个animateTop就可以了 2. vue等MVVM就有些麻烦了,因为不推荐操作DOM,专注于数据 我们可以使用 css3 transition: ...
- ES5数组遍历
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值. array.reduce(function(total, currentValue, curren ...