<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[X_Jagger的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/X_Jagger</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; X_Jagger]]></copyright><item><title><![CDATA[字符串前后判断踩坑，理解越直白的越不会出错]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/78861154</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/78861154</guid><author>X_Jagger</author><pubDate>Thu, 21 Dec 2017 10:53:58 +0800</pubDate><description><![CDATA[判断一个字符串是否以指定的字符串开始 （未完）String.prototype.startWith = function (startString) {
    return typeof startString === 'string' && new RegExp('^' + startString).test(this);
    // if(startString && this.length]]></description><category></category></item><item><title><![CDATA[canvas-shooting-game 记录与思考]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/77841525</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/77841525</guid><author>X_Jagger</author><pubDate>Wed, 06 Sep 2017 20:08:14 +0800</pubDate><description><![CDATA[题目来源：http://git.imweb.io/imweb-teacher/game完成的代码:canvas-shooting-game
  实现的功能： 
  - 飞机自由移动 
  - 飞机可以单发也可以连发（移动的时候也可以） 
  - 有关数
demo-1:监听空格与方向键，赋予相应的事件，然后canvas重绘，实现飞机的移动与子弹的射击。每一个子弹是独立对象，继承自Bullet(),包含]]></description><category></category></item><item><title><![CDATA[window.scroll(To)为什么不能在页面load完成后自动滚动？]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/77839940</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/77839940</guid><author>X_Jagger</author><pubDate>Mon, 04 Sep 2017 17:48:44 +0800</pubDate><description><![CDATA[今天学window.scroll，然后试了一段代码function Scrolldown() {
    window.scrollTo(0, 300);
    console.log('success');
}
window.onload = Scrolldown;刷新页面死活不滚动… 
然后自己在控制台手动输入window.scrollTo(0, 300);立马滚动….好奇脸？然后加了一个se]]></description><category></category></item><item><title><![CDATA[17.8.28 搜狐编程题-JS.. 待完善]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/77657733</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/77657733</guid><author>X_Jagger</author><pubDate>Mon, 28 Aug 2017 21:18:08 +0800</pubDate><description><![CDATA[暴力做：测试用例
//arr = ['7', '5', '1', '0', '0', '0'].map(Number)  // 1
//arr = ['0', '0', '4', '0', '0', '1'].map(Number)  // 2var arr = readline().split(" ").map(Number);
var sum = 0;
var str = arr.join();]]></description><category></category></item><item><title><![CDATA[响应式布局学习]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/77490138</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/77490138</guid><author>X_Jagger</author><pubDate>Wed, 23 Aug 2017 00:38:23 +0800</pubDate><description><![CDATA[Sizing Elements1.em：parent elements的 font size，不设置默认为16px2.rem 代表  font-size ,不设置默认为16px3.Percentages：height % width 相对于父本元素relative to their parent elements on the page 
 “` 
 .main { 
  height: 300px]]></description><category></category></item><item><title><![CDATA[You Don't Know JS: Types & Grammar 总结]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/77490110</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/77490110</guid><author>X_Jagger</author><pubDate>Wed, 23 Aug 2017 00:37:09 +0800</pubDate><description><![CDATA[Typesnull undefined boolean number string object symbol(es6) 
除了object，都叫基本类型用typeof来检测types：
typeof NaN === 'number //true
typeof Infinity === 'number' //true
typeof undefned ==='undefined'
typeof nul]]></description><category></category></item><item><title><![CDATA[一篇文章搞懂toString() 和 valueOf()]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/73430959</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/73430959</guid><author>X_Jagger</author><pubDate>Sun, 18 Jun 2017 14:00:18 +0800</pubDate><description><![CDATA[碰到过几次这两个的问题了，于是总结一下，通过几个例子来学学toString() 和 valueOf() 以及他们之间的区别 
  目录： 
  零、隐式转换 
  一、认识toString 
  二、认识valueOf() 
  三、toString() vs valueOf
零、隐式转换Point to: 有趣的JS隐式转换一、认识toStringMDN：toString() 方法返回一个表示该对]]></description><category></category></item><item><title><![CDATA[问题（已解决）：push pop for循环中push变量，变量随之改变的问题]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/72973252</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/72973252</guid><author>X_Jagger</author><pubDate>Sat, 10 Jun 2017 00:54:05 +0800</pubDate><description><![CDATA[今天做剑指Offer的时候碰到了这个问题，push一个数组，这个数组也在pop元素，为什么push没有直接把结果放进去，而放的一个指向var x = [];
var y = [1,2,3];
for(var i = 0; i < 5; i++) {
    x.push(y);
    y.pop();
}
console.log(x);
/*结果是这个[Array(0), Array(0), Ar]]></description><category></category></item><item><title><![CDATA[各种width，offsetWidth， getBoundingClientRect()， clientWidth，scrollWidth区别]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/72824868</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/72824868</guid><author>X_Jagger</author><pubDate>Wed, 31 May 2017 23:34:04 +0800</pubDate><description><![CDATA[各种width，offsetWidth， getBoundingClientRect()， clientWidth，scrollWidth区别
  搬运自https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements
How much room does]]></description><category></category></item><item><title><![CDATA[JS类型判断全总结]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/72793130</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/72793130</guid><author>X_Jagger</author><pubDate>Sun, 28 May 2017 16:00:21 +0800</pubDate><description><![CDATA[为了不死在笔试，为秋招作的准备 
  分为两个部分，一部分讲方法，一部分判断实例 
  1.Array.prototype 是数组,Object.prototype是对象,Function.prototype是函数
设要判断的变量为variable,要判断的类型X 
一、方法： 
- 1.typeof variable === X 
- 2.variable instanceof X 
- 3.va]]></description><category></category></item><item><title><![CDATA[apply,bind,call应用小总结]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/72790756</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/72790756</guid><author>X_Jagger</author><pubDate>Sun, 28 May 2017 14:26:10 +0800</pubDate><description><![CDATA[三者的作用都是改变函数执行时的上下文，也就是改变this指向 
fun.apply(thisArg, [argsArray]) 
function.call(thisArg, arg1, arg2, …) 
fun.bind(thisArg[, arg1[, arg2[, …]]])call与apply的区别在于,传递参数的方式 
bind与他们的区别是,bind是返回这个函数的copy，而call]]></description><category></category></item><item><title><![CDATA[JS 二进制计算，如何得到一个负数的二进制表示]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/72765526</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/72765526</guid><author>X_Jagger</author><pubDate>Fri, 26 May 2017 12:55:47 +0800</pubDate><description><![CDATA[题目：输入一个整数，输出该数二进制表示中1的个数。其中负数用补码表示 
  收获： 
  1.由负数的补码求他的绝对值补码：负二进制数的绝对值，只要各位（包括符号位）取反，再加1，就得到其绝对值。  
  2.负数正码取反（不包括符号位）+1即得到补码表示 
  3.JS中求二进制，(number).toString(2)，负数和正数表示除了符号外相同。如(-123).toString(2) ==]]></description><category></category></item><item><title><![CDATA[String.slice() 和 String.substring(),String.substr()的区别]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/72764275</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/72764275</guid><author>X_Jagger</author><pubDate>Fri, 26 May 2017 10:40:58 +0800</pubDate><description><![CDATA[Syntax: string.slice(start, stop); 
  Syntax: string.substring(start, stop); 
  返回一个字符串，左包含，右不包含
相同：
1.如果start == stop,return一个空字符串
2.stop如果被省略，则直接扫至字符串尾
3.如果start或stop大于了字符串长度，则会被替换成字符串长度
不同： 
substin]]></description><category></category></item><item><title><![CDATA[数组，对象遍历以及特殊的数组里的对象处理]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/72578297</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/72578297</guid><author>X_Jagger</author><pubDate>Sat, 20 May 2017 15:30:55 +0800</pubDate><description><![CDATA[做题碰到了数组里的对象的问题，特记下
一、简单遍历//数组
var x = [1,2];
for(var i = 0; i < arr.length; i++ ){
    //处理
    console.log(arr[i]);//输出1 2
}//对象
var x = {a:1,b:2};
for(var i in x){
    //处理
    console.log(i);//输出 a]]></description><category></category></item><item><title><![CDATA[setTimeout 循环闭包的经典面试题 解法与探究]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/64584335</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/64584335</guid><author>X_Jagger</author><pubDate>Tue, 21 Mar 2017 23:02:00 +0800</pubDate><description><![CDATA[题:修改下面的代码，让循环输出的结果依次为1， 2， 3， 4， 5
  for (var i=1; i<=5; i++) {  
      setTimeout( function timer() { 
          console.log(i); 
      }, i*1000 ); 
  }
一、利用闭包:1.匿名函数
for (var i=1; i<=5; i++) {     (]]></description><category></category></item><item><title><![CDATA[DOM简单梳理]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/62889669</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/62889669</guid><author>X_Jagger</author><pubDate>Fri, 17 Mar 2017 15:55:14 +0800</pubDate><description><![CDATA[定义：DOM：Document Object Model。 
是针对HTML,XML文档的一个API（应用程序编程接口），它将任何HTML,XML文档描绘成一个由多层节点(node)构成的结构。 
节点有多种类型，每种类型表示文档中不同的信息及标记，每个节点也拥有各自的特点、数据和方法，然后各节点之间也存在某种关系。 
想象成一个树状图一、Node节点爸爸一共有12种节点，这些节点都继承自一个基类型]]></description><category></category></item><item><title><![CDATA[HTTP理解梳理]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/62424415</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/62424415</guid><author>X_Jagger</author><pubDate>Thu, 16 Mar 2017 15:37:15 +0800</pubDate><description><![CDATA[内容来自《图解HTTP》 
沟通通信需要建立一个大家都遵守的规范，怎么传数据，谁先传数据等等，这个规范就是协议Protocol。HTTP也是一种协议，讲到协议就要说一下TCP/IP。TCP/IPTCP/IP是各类协议的总称。 
1.协议族按层次分为四层：（方便更改测试等） 
- 应用层：应用服务通信。FTP,DNS,HTTP 
- 传输层：两台计算机之间的数据传输。 TCP（传输控制）,UDP(用户]]></description><category></category></item><item><title><![CDATA[《Javascript高级程序设计》第七章-函数表达式总结]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/62215407</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/62215407</guid><author>X_Jagger</author><pubDate>Wed, 15 Mar 2017 09:28:15 +0800</pubDate><description><![CDATA[函数表达式1.函数表达式和函数声明函数表达式：x();//wrong
var  x = function (arg0,arg1,arg2){//没有命名的函数称作匿名函数
//函数体
};函数声明：会在执行代码读取之前先读取函数声明，因此可以把声明放在执行代码之后。x();//right
function x (arg0,arg1,arg2){
//函数体
};2.递归function factor]]></description><category></category></item><item><title><![CDATA[函数作为另一个函数的结果返回]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/61615672</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/61615672</guid><author>X_Jagger</author><pubDate>Sun, 12 Mar 2017 11:43:45 +0800</pubDate><description><![CDATA[function compare(x){
  return function(obj1,obj2){//此处的Obj1,obj2是从data里的元素选来比较吗？
    var value1=obj1[x];
    var value2=obj2[x];
    if(value1<value2){
      return -1;
    }else if(value1>value2){]]></description><category></category></item><item><title><![CDATA[JS变量复制和参数传递]]></title><link>https://blog.youkuaiyun.com/X_Jagger/article/details/60875999</link><guid>https://blog.youkuaiyun.com/X_Jagger/article/details/60875999</guid><author>X_Jagger</author><pubDate>Wed, 08 Mar 2017 17:02:22 +0800</pubDate><description><![CDATA[5种基本数据类型，按值访问 
引用类型：object、Array、function、date一、变量复制： 
1.复制基本类型值时，会创建新值并复制到新变量分配的位置。var num1=5;
var num2=num1;
num2=4;
alert(num1);// 输出5两个变量相互操作没有任何影响。 
2.复制引用类型时，复制的值是一个指针，指向同一个对象。var obj1=new Object]]></description><category></category></item></channel></rss>