<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[RealRecall的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/RealRecall</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; RealRecall]]></copyright><item><title><![CDATA[第三章 语言基础]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111842078</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111842078</guid><author>RealRecall</author><pubDate>Mon, 28 Dec 2020 11:57:13 +0800</pubDate><description><![CDATA[变量
var 关键字

var声明会自动提升到函数定义域顶部。
反复多次使用var声明同一个变量没有问题。
var在全局变量声明，会成为windows对象的属性。

let 声明

let声明的范围是块作用域。
let声明的变量不会在作用域中被提升。
在let声明之前的执行瞬间被称为“暂时性死区”，在此阶段引用任何后面才声明的变量都会抛出ReferenceError。
条件声明的作用域在if块内。
let在全局作用域声明，不会成为window对象的属性。
在for循环中使用let声明，可以避免执行超时逻辑时]]></description><category></category></item><item><title><![CDATA[JavaScript for...in 循环]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111773418</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111773418</guid><author>RealRecall</author><pubDate>Sun, 27 Dec 2020 10:49:24 +0800</pubDate><description><![CDATA[&lt;script&gt;
var txt = "";
var person = {fname:"Bill", lname:"Gates", age:62}; 
var x;
for (x in person) {
  txt += person[x] + " ";
}
document.getElementById("demo").innerHTML = txt;
&lt;/script&gt;

输出结果：Bill Gates 62

]]></description><category></category></item><item><title><![CDATA[JS中if语句何时认为条件的求值是false]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111596582</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111596582</guid><author>RealRecall</author><pubDate>Wed, 23 Dec 2020 18:51:10 +0800</pubDate><description><![CDATA[以下是几种情况：
if(null) {console.log("123")} else {console.log("2222")}//2222
if(undefined) {console.log("123")} else {console.log("2222")}//2222
if(0) {console.log("123")} else {console.log("2222")}//2222
if(-0) {console.log("123")} else {console.log("2222")}//]]></description><category></category></item><item><title><![CDATA[:hover和onmouseover、onmouseout]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111594196</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111594196</guid><author>RealRecall</author><pubDate>Wed, 23 Dec 2020 17:05:49 +0800</pubDate><description><![CDATA[两者一个是用过css达到效果，一个是通过js达到效果。需要灵活使用。
若是使用css是这样的
&lt;style&gt;
  tr:hover {
    font-weight: bold;
  }
&lt;/style&gt;

如果使用JS是这样的
function highlightRows() {
  if(!document.getElementsByTagName) return false;
  var rows = document.getElementsByTagName("tr");
]]></description><category></category></item><item><title><![CDATA[JS中数组的特点]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111588641</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111588641</guid><author>RealRecall</author><pubDate>Wed, 23 Dec 2020 14:00:01 +0800</pubDate><description><![CDATA[很多编程元素支持命名索引的数组。
具有命名索引的数组被称为关联数组（或散列）。
JavaScript 不支持命名索引的数组。
在 JavaScript 中，数组只能使用数字索引。
假如使用命名索引，JavaScript 会把数组重定义为标准对象。
之后，所有数组的方法和属性将产生非正确结果。
var person = [];
person["firstName"] = "Bill";
person["lastName"] = "Gates";
person["age"] = 62;
var x = pers]]></description><category></category></item><item><title><![CDATA[关于onclick]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111574952</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111574952</guid><author>RealRecall</author><pubDate>Wed, 23 Dec 2020 10:41:43 +0800</pubDate><description><![CDATA[用tab键移动到某个链接然后按下回车也可以出发onclick事件，所以把它命名为onactive更恰如其分

]]></description><category></category></item><item><title><![CDATA[使用webpack时遇到Module not found]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111504182</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111504182</guid><author>RealRecall</author><pubDate>Tue, 22 Dec 2020 08:26:49 +0800</pubDate><description><![CDATA[完整的报错是：
Module not found: Error: Can’t resolve ‘a.js’ in ‘D:\programming\trywebpack’
我解决的方法是，添加配置文件：webpack.config.js
配置文件内容为：
module.exports = {
  entry: "./a",
  output: {
    filename: "pack.js",
    path: __dirname,
  },
};


三项的意思是：入口、出口、路径。__dirname表]]></description><category></category></item><item><title><![CDATA[函数定义后直接调用]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111499760</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111499760</guid><author>RealRecall</author><pubDate>Mon, 21 Dec 2020 21:01:19 +0800</pubDate><description><![CDATA[(function () {
  window.msg = "Yo.";
})();

这里的最后一对括号是函数运算符，运算左边一对括号内的匿名函数。

]]></description><category></category></item><item><title><![CDATA[js使用try，catch，throw]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111355502</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111355502</guid><author>RealRecall</author><pubDate>Fri, 18 Dec 2020 11:23:24 +0800</pubDate><description><![CDATA[先上代码：
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta charset="utf-8"&gt;
&lt;title&gt;菜鸟教程(runoob.com)&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;p&gt;请输入 5 和 10 之间的一个数:&lt;/p&gt;

&lt;input id="demo" type="text"&gt;
&lt;button type="button" o]]></description><category></category></item><item><title><![CDATA[day34-36 一种使用innerHTML增加内容的方法]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111327705</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111327705</guid><author>RealRecall</author><pubDate>Thu, 17 Dec 2020 20:13:05 +0800</pubDate><description><![CDATA[代码如下：

outerHTML这个属性和innerHTML差不多，前者还额外设置（或获取）对象的标签。

]]></description><category></category></item><item><title><![CDATA[day34-36属性选择器]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111322006</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111322006</guid><author>RealRecall</author><pubDate>Thu, 17 Dec 2020 18:56:38 +0800</pubDate><description><![CDATA[当元素里没有id和class，且不能通过元素直接找到怎么办？
用属性选择器！
示例代码：
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;style&gt;
a[target=_blank]
{
background-color:yellow;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;p&gt;target="_blank" 的链接会得到黄色背景：&lt;/p&gt;

&lt;a href="]]></description><category></category></item><item><title><![CDATA[day34-36 善用字符串拼接]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111319751</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111319751</guid><author>RealRecall</author><pubDate>Thu, 17 Dec 2020 17:05:43 +0800</pubDate><description><![CDATA[我第一次看到这个代码还以为是写错了，是因为我有思维定式
代码如下：
qiu.style.transform = "translate("+x+"px,"+y+"px)";

我的思维定式是，使用style.属性后，内容要被引号包围，但实际上并不是这样的，使用引号只是为了录入字符串，当需要录入变量时，用字符串的拼接即可。
我把等号后面的引号的逻辑关系看错了，以为第一个括号和最后一个括号是一对。

...]]></description><category></category></item><item><title><![CDATA[day34-36在XML中的五个实体引用]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111275252</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111275252</guid><author>RealRecall</author><pubDate>Wed, 16 Dec 2020 14:59:18 +0800</pubDate><description><![CDATA[如果把字符 “&lt;” 放在 XML 元素中，会发生错误，这是因为解析器会把它当作新元素的开始：
&lt;message&gt;if salary &lt; 1000 then&lt;/message&gt;

为了避免这个错误，要用实体引用来代替 “&lt;” 字符：
&lt;message&gt;if salary &amp;lt; 1000 then&lt;/message&gt; 

在 XML 中，有 5 个预定义的实体引用：
&amp;lt; &lt;
&amp;gt; &gt;
&amp;a]]></description><category></category></item><item><title><![CDATA[day31-33 对于e.target的使用要小心]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111227128</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111227128</guid><author>RealRecall</author><pubDate>Tue, 15 Dec 2020 17:42:40 +0800</pubDate><description><![CDATA[对于onclick事件，每一次的e.target所获得的对象取决于onclick的地方。与变量不同。
实例代码：
&lt;html&gt;
  &lt;body&gt;
    &lt;div id="region-radio-wrapper"&gt;&lt;/div&gt;
    &lt;div id="product-radio-wrapper"&gt;&lt;/div&gt;
    &lt;div id="table-wrapper"&gt;&lt;/div&gt;
    &lt;script&]]></description><category></category></item><item><title><![CDATA[day31-33阻止默认事件的方法]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111182435</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111182435</guid><author>RealRecall</author><pubDate>Mon, 14 Dec 2020 18:16:33 +0800</pubDate><description><![CDATA[代码如下：
      var input = document.querySelector("input");
      input.onclick = function (e) {
        if (input.checked == false) {
          e.preventDefault();
        }
      };

这样的话，checkbox就无法取消了。因为当checked的值想要变成false时，input的默认事件，即“改变checkbox的状态”这个默认]]></description><category></category></item><item><title><![CDATA[day31-33 关于点击事件内的判断语句]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111181203</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111181203</guid><author>RealRecall</author><pubDate>Mon, 14 Dec 2020 17:45:55 +0800</pubDate><description><![CDATA[如果点击了一个checkbox，判断语句的判断是根据点击后的情况判断的：
举个例子：
        if (input.checked == true) {
          console.log("123");
        }

在这里，当按钮按下后，如果是选中状态，则输出123

...]]></description><category></category></item><item><title><![CDATA[day31-33 :nth-child和:nth-of-type的区别]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111179265</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111179265</guid><author>RealRecall</author><pubDate>Mon, 14 Dec 2020 17:07:43 +0800</pubDate><description><![CDATA[区别不大。
以为p为子元素为例。
p:nth-child(n)  p的父元素的第n个子元素
p:nth-of-type   p的父元素的第n个p元素

]]></description><category></category></item><item><title><![CDATA[day31-33关于parentNode,parentElement,childNodes,children]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111178857</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111178857</guid><author>RealRecall</author><pubDate>Mon, 14 Dec 2020 17:00:44 +0800</pubDate><description><![CDATA[找节点和找元素是不同的。
childNodes和children区别在于，childNodes可能会找到文本节点，而children只会找到元素节点。
parentNode和parentElement区别在于，存在document的节点，而不存在document元素。

]]></description><category></category></item><item><title><![CDATA[day31-33关于自定义属性和修改属性]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111174526</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111174526</guid><author>RealRecall</author><pubDate>Mon, 14 Dec 2020 16:09:00 +0800</pubDate><description><![CDATA[以input标签为例子
input = document.querySelector("input");
input.type = "checkbox";//在DOM中，也在标签中。
input.hhhhhhh = "xxxxxx";//在DOM中，不在标签中，因为他不是内建属性。
input.setAttribute("zzzzz","checkbox");//不管是否是内建属性，都会出现在标签中。

所以，在修改内建属性时，为了方便，直接用点语法就行。
在创建和修改自定义属性时，用setAttribut]]></description><category></category></item><item><title><![CDATA[day22-24 二叉树]]></title><link>https://blog.youkuaiyun.com/RealRecall/article/details/111143419</link><guid>https://blog.youkuaiyun.com/RealRecall/article/details/111143419</guid><author>RealRecall</author><pubDate>Sun, 13 Dec 2020 18:45:32 +0800</pubDate><description><![CDATA[放一个二叉树的例子
&lt;html&gt;
  &lt;body&gt;
    &lt;script&gt;
      var tree = {
        id: 0,
        name: "root",
        left: {
          id: 1,
          name: "Simon",
          left: {
            id: 3,
            name: "Carl",
            left: {
  ]]></description><category></category></item></channel></rss>