十五的学习日记20160926

JavaScript

  1. 一个用于检测正负值的函数,可以用它辨别-0值.
    我觉得挺好用,以后可以写到自己的工具库里.
//函数:检查传入参数是否为正数.Number=>Boolean
function isPositive(num){if(typeof num !="number"||!Math.isNaN(num)){return false}//类型检查!return 1/num===1/Math.abs(num)//如果一个数和他本身的绝对值相等那么就是正的,否则就是负的,此处负零为负,正零为正.
}
  1. 工厂模式\混合模式的原理和应用
    原理:
  • 工厂模式: 设置加工函数,按照传入参数选择类来生成实例,返回包装结果.
  • 混合模式: 类似工厂模式,但不选择类来生成实例,而是把类作为要生成对象的子类.
    ...算了,还是不写什么原理了,看着头大,自己写代码太少,读不懂.
  1. 工厂模式用例和解释:扑克牌类的写法:
    需求分析:
    卡牌本身:2种颜色,4种花色,每种花色13阶,外加大小王.
    类方法:可以按多种规则进行排序,
    可以洗牌,抽牌,检查牌库状态(空\满)
    检查和提示重复.
    按这写法想了一晚上,发现码量太大了.今晚不可能写完

(function () {/** 基本思路:* 通过basicSet生成图片套牌,包含花色颜色阶位* 未完成* */var basicSet={//基础设置只为初始化牌面而用.pattern:{heart:"♥",diamond:"♦",spade:"♠",club:"♣"},color:{red:"red",black:"black"},joker:{needed:true,jokrank:14},rank:["A","2","3","4","5","6","7","8","9","10","J","Q","K"],cardBox:[],code_generate://生成唯一密码.无需执行,每次执行都相当于重置内部arr数组.function () {var arr=[];return function () {for(;;){var key=Math.random().toString(16).substring(2);if(arr.indexOf(key)==-1){break;}else{key=Math.random().toString(16).substring(2);}}arr.push(key);return key;}}};//一张卡的构造函数var SingleCard=function (face=false,color="black",pattern="♥A",rank=0,Id,owner="host",joker=null) {//下面这些属性除了正反面可以修改,其余在创造后都不可以修改,所以这段代码会重写成带有被写保护模式的if(joker){this.isfrontface=face?face:false;this.color=color?color:"black";this.pattern=null;this.rank=basicSet.joker.jokrank;}else {this.isfrontface=face?face:false;this.color=color?color:"black";this.pattern=pattern?pattern:"♥1";this.rank=rank}this.Id=Id?Id:Math.random().toString(16).substring(2);this.owner=owner};SingleCard.prototype.go={turnRound:function () {this.isfrontface=this.isfrontface?false:true;}};//一组卡的构造函数var cardSet=function (owner="host",cards) {this.owner=owner;this.cards=[];if(Object.prototype.toString.call(cards)==="[object Array]"){this.cards.concat(cards);}};cardSet.prototype.go={shuffle:function () {},get function(){}};//初始化卡片区var initCardZone =function (){};//初始化入口var init=function () {};//初始化使用者var user=function (name,direction,role="player") {};//模块出口return (function () {//接入口window.myGames={}})();})();

4.new操作符的逻辑, new虽然被认为次一级,点号访问和括号调用最高级,但存在如下两种情况
new func()()转化为new (func())()
new func.func()转化为new (func.func())
见代码如下

function Foo() { getName = function () { alert (1); }; return this; }
Foo.getName = function () { alert (2);};
Foo.prototype.getName = function () { alert (3);};
var getName = function () { alert (4);};
function getName() { alert (5);}
//请写出以下输出结果:
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();

作者: 你不知道的前端
链接:http://www.imooc.com/article/9925
来源:慕课网

工具&思想

  1. 今天看到群里一张emacs的截图,发现emacs没有想象中的丑陋, 然后去网上了解了emacs的一些细节,比如他的无所不能,可以写文章,可以任务管理也可以编写项目计划, 这激起了我想去下一个emacs观摩一下的心情,尝试的结果明天再说.

转载于:https://www.cnblogs.com/always-naive/p/5933821.html

十五的学习日记20160926-你不知道的JS笔记/相关推荐

  1. 十五的学习日记20160925

    十五的学习日记20160925 CSS 学过盒子布局的人都知道,元素之间的上下margin会合并,保留数值较大的margin作为渲染依据. 但是今天在群里讨论发现: img元素和p元素的上下margi ...

  2. 第十五周学习周记——微信小程序开发初步

    第十五周学习周记 前言 一.小程序简介 二.小程序代码构成 1. JSON配置 2. WXML模板 3. WXSS样式 4. JS逻辑交互 总结 前言 这一周将开始微信小程序的学习. 一.小程序简介 ...

  3. 第十五周学习周报(20180611-20180617)

    第十五周学习周报 一.本周学习情况 1.本周主要学习李宏毅老师的机器学习课程 Backpropagation Convolutional Neural Network Semi-supervised ...

  4. 201771010137 赵栋《面向对象程序设计(java)》第十五周学习总结

    实验十五  GUI编程练习与应用程序部署 实验时间 2018-12-6 一:理论部分. 1.Java 程序的打包:编译完成后,程序员将.class 文件压缩打包为 .jar 文件后,GUI 界面序就可 ...

  5. 2017面向对象程序设计(Java)第十五周学习总结

    上周,老师要求同学们自学应用程序部署,并布置了相关的实验任务.此次实验的目的是掌握Java应用程序的打包操作:了解应用程序存储配置信息的两种方法: 了解Applet小应用程序的开发及应用方法:掌握基于 ...

  6. 【软件开发底层知识修炼】十五 快速学习GDB调试二 使用GDB进行断点调试

    上一篇文章我们学习了使用GDB的最基本方法:[软件开发底层知识修炼]十四 快速学习GDB调试一 入门使用 本篇文章将学习GDB的断点调试.断点调试是一种非常重要的调试方法. 文章目录 1 断点类型 2 ...

  7. 软件工程--第十五周学习进度

      第十五周 代码量  245 所花时间 6h  博客量  3篇 了解到的知识点  搭建基本web,了解了服务器的配置过程,也开始为自己的项目投入基金. 转载于:https://www.cnblogs ...

  8. 推荐系统遇上深度学习(十五)--强化学习在京东推荐中的探索

    强化学习在各个公司的推荐系统中已经有过探索,包括阿里.京东等.之前在美团做过的一个引导语推荐项目,背后也是基于强化学习算法.本文,我们先来看一下强化学习是如何在京东推荐中进行探索的. 本文来自于pap ...

  9. 十五、IO流【黑马JavaSE笔记】(本文文中记录了个人学习感受)

    文章目录 IO流 (一)File 1.File类的概述和构造方法 2.File类的创建功能 3.File类判断和获取功能 4.File类的删除功能 5.递归 6.案例(递归求阶乘) 7.案例(遍历目录 ...

最新文章

  1. 跨平台工具、组件和框架的汇总
  2. ASP.NET State Service
  3. 2018年工业机器人销量排位_长安-2018年11月汽车销量 细分销量
  4. 计算机会考补考时间安排,2019-2020学年第二学期初补考考试安排(实时更新)
  5. 网络协议:TCP拥塞控制
  6. 金山云服务器内网带宽,性能提升40%!第三代金山云服务器全面覆盖不同企业计算力需求...
  7. 杭电--1009 C语言实现
  8. ai能不能同时切割多个对象_今天才发现,AI有这9个隐藏技能...
  9. html编码的aacll,高级音频编码(AAC)的一种信息隐藏方法.pdf
  10. 数据库系统基础教程(1)数据库系统世界
  11. 微信支付H5完整版代码
  12. Vehicle veh1 = new Vehicle(); 如何理解这个语句
  13. html5 扩展 cs6,Dreamweaver CS6提高了HTML5工具的效率
  14. 如何使用计算机对文件修改密码,文件夹怎么设置密码?怎么给文件夹设置密码?...
  15. 【Mesh】关于Mesh中Seq+IV与RPL分析
  16. pyhton BOF图像检索
  17. 交换机vtp功能配置
  18. html中表格实现在页面居中显示,html中怎么把表格居中
  19. github监控平台hawkeye搭建
  20. 苍溪师范94级计算机与文秘专业就业前景,2019文秘专业就业前景和就业方向分析...

热门文章

  1. 深入理解Java 虚拟机
  2. oracle dba收入水平,oracle教程_oracle dba 收入
  3. boost1.7 centos7编译
  4. Makefile模板的改进
  5. 三人表决器_数电小实验之三人表决器
  6. linux在python的虚拟环境下运行程序_在win10和linux上分别安装Python虚拟环境的方法步骤...
  7. 【算法】剑指 Offer 05. 替换空格
  8. 【算法】剑指 Offer 12. 矩阵中的路径
  9. 【Kafka】kafka-eagle几个指标含义
  10. Spark 2.1.0集成CarbonData 1.1.0