<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[FrequencyStar的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/FrequencyStar</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; FrequencyStar]]></copyright><item><title><![CDATA[08.JavaScript BOM]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/108306407</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/108306407</guid><author>FrequencyStar</author><pubDate>Sun, 30 Aug 2020 14:57:04 +0800</pubDate><description><![CDATA[BOM
window对象
全局作用域

window对象同时扮演着ECMAScript中Global对象的角色，因此所有在全局作用域中声明的变量、函数都会变成window对象的属性和方法

var age = 29;
function sayAge(){
    alert(this.age);
}

alert(window.age);      //29
sayAge();               //29
window.sayAge();        //29


全局变量不能通过delete操]]></description><category></category></item><item><title><![CDATA[07.JavaScript函数表达式]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/108265761</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/108265761</guid><author>FrequencyStar</author><pubDate>Thu, 27 Aug 2020 17:48:39 +0800</pubDate><description><![CDATA[函数表达式

定义函数的方式有两种：一种是函数声明，另一种就是函数表达式

函数声明的语法是这样的。
function functionName(arg0, arg1, arg2) {
    //函数体
}


关于函数声明，它的一个重要特征就是函数声明提升（function declaration hoisting），意思是在执行代码之前会先读取函数声明。这就意味着可以把函数声明放在调用它的语句后面

第二种创建函数的方式是使用函数表达式。函数表达式有几种不同的语法形式
var functionName]]></description><category></category></item><item><title><![CDATA[06.JavaScript面向对象的程序设计]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/108257610</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/108257610</guid><author>FrequencyStar</author><pubDate>Thu, 27 Aug 2020 13:01:02 +0800</pubDate><description><![CDATA[面向对象的程序设计
理解对象

创建自定义对象的最简单方式就是创建一个Object的实例，然后再为它添加属性和方法

var person = new Object();
person.name = "Nicholas";
person.age = 29; 
person.job = "Software Engineer";

person.sayName = function(){
    alert(this.name); 
};

几年后，对象字面量成为创建这种对象的首选模式。前面的例子用对象字面量语]]></description><category></category></item><item><title><![CDATA[05.JavaScript引用类型]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/108175501</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/108175501</guid><author>FrequencyStar</author><pubDate>Sat, 22 Aug 2020 21:59:08 +0800</pubDate><description><![CDATA[引用类型

引用类型的值（对象）是引用类型的一个实例。


Object
Array
Date
RegExp
Function
基本包装类型
单体内置对象

Object类型（ES6有变化）


创建

使用new操作符后跟Object构造函数

var person = new Object();
person.name = "Nicholas";
person.age = 29;


使用对象字面量表示法

var person = {
    name : "Nicholas",
    age : ]]></description><category></category></item><item><title><![CDATA[04.变量、作用域和内存问题]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/108110510</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/108110510</guid><author>FrequencyStar</author><pubDate>Wed, 19 Aug 2020 20:57:51 +0800</pubDate><description><![CDATA[变量、作用域和内存问题
基本类型和引用类型的值

ECMAScript变量可能包含两种不同数据类型的值：基本类型值和引用类型值。基本类型值指的是简单的数据段，而引用类型值指那些可能由多个值构成的对象


5种基本数据类型：Undefined、Null、Boolean、Number和String。这5种基本数据类型是按值访问的，因为可以操作保存在变量中的实际的值
引用类型的值是保存在内存中的对象。在操作对象时，实际上是在操作对象的引用而不是实际的对象。为此，引用类型的值是按引用访问的。

动态的属性


定义]]></description><category></category></item><item><title><![CDATA[03.JavaScript基本概念]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/108097522</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/108097522</guid><author>FrequencyStar</author><pubDate>Wed, 19 Aug 2020 12:01:49 +0800</pubDate><description><![CDATA[基本概念
语法
区分大小写
ECMAScript中的一切都区分大小写
标识符
所谓标识符，就是指变量、函数、属性的名字；或者函数的参数。

第一个字符必须是一个字母，下划线或一个美元符号
其他字符可以是字母，下划线，美元符号或数字

按照惯例，ECMAScript标识符采用驼峰大小写格式，也就是第一个字母小写，剩下每个有意义的单词的首字母大写，例如myCar
注释
// 单行注释

/*
 * 这是一个多行
 * （块级）注释
 */

严格模式
启用严格模式，在脚本顶端添加"use strict"
语句
]]></description><category></category></item><item><title><![CDATA[02.在HTML中使用JavaScript]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/108028535</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/108028535</guid><author>FrequencyStar</author><pubDate>Sat, 15 Aug 2020 21:23:55 +0800</pubDate><description><![CDATA[在HTML中使用JavaScript
&lt;script&gt;元素
通过&lt;script&gt;元素插入JavaScript
HTML4.01为&lt;script&gt;定义了以下6个属性：

async：


可选
表示应该立即下载脚本，但不应妨碍页面中的其他操作
只对外部脚本有效


charset：


可选
表示通过src属性指定的代码的字符集


defer：


可选
表示脚本可以延迟到文档完全被解析和显示之后再执行
只对外部脚本有效


language：


已废弃
表示用于表示代]]></description><category></category></item><item><title><![CDATA[01.JavaScript简介]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/108024434</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/108024434</guid><author>FrequencyStar</author><pubDate>Sat, 15 Aug 2020 16:24:04 +0800</pubDate><description><![CDATA[JavaScript简介
JavaScript实现
一个完整的JavaScript实现应该由下面三个不同的部分组成。

ECMAScript-核心
DOM-文档对象模型
BOM-浏览器对象模型

文档对象模型-DOM

文档对象模型（DOM，Document Object Model）是针对XML经过扩展用于HTML的应用程序接口（API，Application Programming Interface）。

DOM把整个页面映射为一个多层节点结构。HTML页面中的每个组成部分都是某种类型的节点，这些节点]]></description><category></category></item><item><title><![CDATA[Vue自定义事件【十三】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107941934</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107941934</guid><author>FrequencyStar</author><pubDate>Tue, 11 Aug 2020 18:43:45 +0800</pubDate><description><![CDATA[自定义事件
事件名

推荐你始终使用 kebab-case 的事件名。

&lt;div id="app"&gt;
      &lt;blog-post @my-welcome="sayHi()"&gt;&lt;/blog-post&gt;
    &lt;/div&gt;

    &lt;script&gt;
      Vue.component('blog-post', {
        props: ['post'],
        template: `&lt;button @click=]]></description><category></category></item><item><title><![CDATA[Vue的Prop【十二】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107899644</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107899644</guid><author>FrequencyStar</author><pubDate>Sun, 09 Aug 2020 20:34:35 +0800</pubDate><description><![CDATA[Prop
Prop的大小写

HTML 中的 attribute 名是大小写不敏感的，所以浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时，camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名

&lt;div id="app"&gt;
      &lt;blog-post post-title="hhhh"&gt;&lt;/blog-post&gt;
    &lt;/div&gt;

    &lt;script]]></description><category></category></item><item><title><![CDATA[Vue组件注册【十一】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107898142</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107898142</guid><author>FrequencyStar</author><pubDate>Sun, 09 Aug 2020 18:52:29 +0800</pubDate><description><![CDATA[组件注册
组件名
Vue.component('my-component-name', { /* ... */ })

该组件名就是 Vue.component 的第一个参数。

自定义组件名 (字母全小写且必须包含一个连字符)。推荐

组件名大小写
定义组件名的方式有两种：


使用kebab-case
Vue.component('my-component-name', { /* ... */ })

当使用 kebab-case (短横线分隔命名) 定义一个组件时，你也必须在引用这个自定义元素时使用 ]]></description><category></category></item><item><title><![CDATA[Vue组件基础【十】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107871835</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107871835</guid><author>FrequencyStar</author><pubDate>Fri, 07 Aug 2020 22:35:23 +0800</pubDate><description><![CDATA[组件基础
基本示例
// 定义一个名为 button-counter 的新组件
Vue.component('button-counter', {
  data: function () {
    return {
      count: 0
    }
  },
  template: '&lt;button v-on:click="count++"&gt;You clicked me {{ count }} times.&lt;/button&gt;'
})

&lt;div id="compone]]></description><category></category></item><item><title><![CDATA[表单输入绑定【九】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107867609</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107867609</guid><author>FrequencyStar</author><pubDate>Fri, 07 Aug 2020 17:48:51 +0800</pubDate><description><![CDATA[表单输入绑定
基础用法

文本
多行文本
复选框
单选按钮
选择框

&lt;div id="app"&gt;
      &lt;form action="#"&gt;
        &lt;!-- 文本 --&gt;
        &lt;input type="text" placeholder="文本" v-model="text" /&gt;
        &lt;span&gt;text : {{text}}&lt;/span&gt;&lt;br /&gt;
        &lt;hr ]]></description><category></category></item><item><title><![CDATA[Vue事件处理【八】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107859120</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107859120</guid><author>FrequencyStar</author><pubDate>Fri, 07 Aug 2020 11:44:33 +0800</pubDate><description><![CDATA[事件处理
监听事件

用v-on指令监听DOM事件，并在触发时运行一些JavaScript代码或者methods方法。

&lt;div id="app"&gt;
      &lt;p&gt;This is counter: {{counter}}&lt;/p&gt;
      &lt;button v-on:click="add()"&gt;Add 1&lt;/button&gt;
    &lt;/div&gt;

    &lt;script&gt;
      let vm = new Vue(]]></description><category></category></item><item><title><![CDATA[Vue列表渲染【七】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107824975</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107824975</guid><author>FrequencyStar</author><pubDate>Wed, 05 Aug 2020 20:59:51 +0800</pubDate><description><![CDATA[列表渲染
v-for

用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法，其中 items 是源数据数组，而 item 则是被迭代的数组元素的别名。

&lt;div id="app"&gt;
      &lt;ul&gt;
        &lt;li v-for="(item, index) in items" :key="index"&gt;
          {{parent}}-{{index}}-{{item.message]]></description><category></category></item><item><title><![CDATA[Vue条件渲染【六】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107771365</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107771365</guid><author>FrequencyStar</author><pubDate>Mon, 03 Aug 2020 19:13:02 +0800</pubDate><description><![CDATA[条件渲染v-if

v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。
也可以用 v-else 添加一个“else 块”：

&lt;div id="app"&gt;
      &lt;h1 v-if="awesome"&gt;I am the first h1&lt;/h1&gt;
      &lt;h1 v-else&gt;oh no&lt;/h1&gt;
    &lt;/div&gt;

    &lt;script&gt;
      let]]></description><category></category></item><item><title><![CDATA[Vue Class与Style绑定【五】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107753117</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107753117</guid><author>FrequencyStar</author><pubDate>Sun, 02 Aug 2020 22:41:10 +0800</pubDate><description><![CDATA[Class与Style绑定

操作元素的class列表和内联样式是数据绑定的一个常见需求，因为他们都是attribute，所以我们可以用v-bind来处理他们

绑定HTML Class
对象语法

通过v-bind:class,借助data或计算属性，来动态改变某个class是否存在

&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
  &lt;head&gt;
    &lt;meta charset="UTF-8" /&gt;
    &lt;meta nam]]></description><category></category></item><item><title><![CDATA[Vue计算属性【四】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107738602</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107738602</guid><author>FrequencyStar</author><pubDate>Sat, 01 Aug 2020 23:26:41 +0800</pubDate><description><![CDATA[计算属性和侦听器
计算属性

模板内的表达式是用于简单运算的，放入太多的逻辑会让模板过重且难以维护。
因此，对于复杂逻辑运算，应当使用计算属性。

&lt;div id="app"&gt;
      &lt;p&gt;This is message: {{ message }}&lt;/p&gt;
      &lt;p&gt;This is message.reverse: {{ reverse }}&lt;/p&gt;
    &lt;/div&gt;

    &lt;script&gt;
    ]]></description><category></category></item><item><title><![CDATA[Vue模板语法【三】]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107729148</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107729148</guid><author>FrequencyStar</author><pubDate>Sat, 01 Aug 2020 12:35:32 +0800</pubDate><description><![CDATA[模板语法

Vue.js 使用了基于 HTML 的模板语法，允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML，所以能被遵循规范的浏览器和 HTML 解析器解析。

插值
文本
Mustache语法（双大括号）：
&lt;span&gt;Message: {{ msg }}&lt;/span&gt;

msg的值绑定在data的msg的property上，如果data的msg的值发生改变，则插值处的内容就会更新。
v-once指令，可以实现一次性插值]]></description><category></category></item><item><title><![CDATA[Vue的API之选项/数据]]></title><link>https://blog.youkuaiyun.com/FrequencyStar/article/details/107710659</link><guid>https://blog.youkuaiyun.com/FrequencyStar/article/details/107710659</guid><author>FrequencyStar</author><pubDate>Fri, 31 Jul 2020 12:09:56 +0800</pubDate><description><![CDATA[Vue的API之选项/数据
data


类型：Object | Function


限制： 组件的定义只接受Function


详细：

Vue实例的数据对象。Vue会递归将data的property转换为getter/setter，从而让data的property能够响应数据变化。

如下代码，将message作为Vue对象的一个属性，进行getter和setter，message就变成了直属于vm对象的一个属性。
let vm = new Vue({
    el: '#app',
    dat]]></description><category></category></item></channel></rss>