JS 是最受欢迎的程序设计语言…(翻译过来的…不赞同的请忽略)

为什么要学习 JS?

每一个网站分析师都需要掌握两样核心技能: 在相关领域内专业的数据分析能力和 JS 能力.

你需要统计分析能力来确保能正确的处理你的数据, 同时你需要 JS 技能去正确的收集你的数据.

统计学帮你很好的分析数据而 JS 帮助你很好的收集数据.

所以如果你的数据收集能力还不是很强的话, 你只能依赖于第三方的服务公司来帮助你做数据收集工作. 除非你的数据需求能得到满足, 不然你就会被卡住.

同时你无法评估数据质量, 因为你不知道数据是如何收集的. 不管怎样你都要处理你获得的数据, 你肯定不愿意接受这样的尴尬处境.

相反的, 如果你很擅长做数据收集工作但是不擅长数据分析的话, 你就基于数据提出任何优化建议.

所以, 毫不夸张的说, 统计分析能力和数据收集能力都是不可或缺的.


以上都是废话…因为外国人真的很喜欢写为什么要学一样东西…

这是一些有用的实例:

JS 在网页文档中的作用

role of js

我们需要尽可能的将 html, css, js 分开存储. 这就意味着 css 需要存储在 css 文件中, js 需要存储在 js 文件中.

一些网站将这三种语言混在一起, 就会导致很难去理解, 阅读, 诊断, 再利用和维护代码.

将 JS 加入 html 的方法

我们有三种方法将 js 代码加入 html 中:

  • 内联 js
  • 嵌入式 js
  • 外部 js

内联 js 添加方法

1
<a onClick=”ga(‘send’,‘social’,‘Linkedin’,’Share’,window.location.href);“> ….</a>

我们需要通过一个事件例如: onclick 事件来调用内联 js.

嵌入式 js

在 html 中加入:

1
2
3
4
5
6
7
8
9
10
<script>
(function(i,s,o,g,r,a,m){i[‘GoogleAnalyticsObject’]=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,’script’,’//www.google-analytics.com/analytics.js’,’ga’);
ga(‘create’, ‘UA-XXXX-Y’, ‘auto’);
ga(‘send’, ‘pageview’);
</script>

在 js 标签之外的 js 代码将不能被识别.

外部 js

1
<script type=”text/javascript” src=”myscript.js“></script>

将 js 代码存储在一个外部的 js 文件中. 外部 js 代码是比较推荐的添加 ga 代码的方法. 使用外部 js 的三大优势:

  • 你的 ga 代码与其他 js 代码互不干扰
  • 让维护, 调试, 理解和再利用变得简单
  • 缓存好的 js 文件可以使页面加载速度更快

JS 语句

js 语句以分号结尾, 在部署和检查代码时一定要注意有没有分号;

js 代码根据他们的排列顺序来执行, 默认情况下, js 代码按照从上到下, 从左到右的顺序执行;

js 会忽略多个空格,例如:

1
ga(‘create’, ‘UA-XXXX-Y’, ‘auto’);

可以写成:

1
ga (‘create’, ‘UA-XXXX-Y’, ‘auto’) ;

或者:

1
2
3
4
5
ga(
‘create’,
‘UA-XXXX-Y’,
‘auto’
);

但是请注意, 如果你的空格加在字符内部就会出现问题,比如:

1
ga(‘create’, ‘UA-XXXX-Y_’, ‘auto’);

js 中的注释

在/* … */ 中的内容不会被 js 执行, 同时 // 开头的一行不会被执行.

js 变量

在 js 中, 我们可以使用 var 来定义一个变量, 变量是用来存储和传递值的量.

最好的方法是在 js 的开头就将所有的变量声明好.

命名 js 变量

下面是变量命名的 6 个特点:

  • 变量名区分大小写
  • 变量名可以是字母
  • 变量名不能包含空格
  • 变量名不能包含特殊字符
  • 变量名不能以数字开头
  • 关键词不能做变量名

js 关键词

js 有一些关键字不能用作变量名,下面是一些例子:

1
2
3
4
5
6
7
8
9
var
function
return
for
true
false
null
undefined
if

js 值

一个 js 变量可以存储所有类型的值:

  • 数值(小数, 整数)
  • 字符串值
  • 布尔值(true false)
  • 未定义的值
  • 空值
  • 数组
  • 多维数据
  • 对象
  • 对象数组
  • 其他变量

js 中的字符串

字符需要使用双引号标记. 如果你想在字符中使用双引号, 请使用反斜杠 “\” 来防止转义. 任何键盘上的字符包含空格都可以在字符串中使用.

js 中的数组和对象

请参考: http://www.w3school.com.cn/js/js_obj_array.asp

js 函数/方法

js 方法不能自己执行, 他必须被调用才能执行.

ga 中的方法

在 ga 中, 我们使用 ga 方法来执行 ga 相关命令.

ga function

请注意, 在 ga 中, 每个方法都有固定的数值和字符, 如果你添加了其他内容, 可能会报错.

同时, 在 ga 方法中, 只有一些参数是必填的或者被允许的, 如果你添加其他的参数, 可能会报错.

  • 在 ga 方法中使用正确的语法
  • 注意查阅 Google Analytics Library
  • 不要给不需要加引号的参数加引号

小结

以下是一些在你部署 ga 代码时需要记住的:

  • 确保每个页面都加上 tracking code
  • 尽量避免自定义代码
  • 不要从文档中复制代码, 因为可能导致全角半角的问题
  • 如果你的 ga 代码不是异步的话, 可能导致数据不那么准确
  • ga 代码有好几个版本: urchin.js (最老版), ga.js, dc.js 和 analytics.js (最新版). 不要部署不同版本的代码到页面
  • 确保代码部署在
  • 确保你的代码正确
  • 即使你将代码作为外部脚本文件, 同样可以保证调用
  • 每次 ga 代码执行, 每个页面发送一个 http request
  • 如果你看到错误: “No HTTP response detected” 那么可能是一些浏览器插件导致的, 或者一些语法错误.