&src/href

<!--href 用于标示资源和文档关系,src 用于替换标签内容-->
<img src="xxx.jpg"/> <script type="text/javascript" src="xxx.js"></script> <a href="http://www.baidu.com">百度</a> <link rel="stylesheet" type="text/css" href="/css/admin.css?id=20170225-2">

为什么当初就决定外部样式表用link href来链接,而不是用style src来载入,可能是因为第一批互联网人认为样式表更符合外部链接资源的特征,它更接近附属的资源,而不是内嵌的内容。比如考虑alternate stylesheets,在同一时间只需要链接一组样式表,而不是载入所有。当然你可以简单的归结为历史遗留(也就是当初某个浏览器开发者的一个偶然决定导致)。这是一个扯淡的问题,制作标准的人不是中国人,是老外;

&缓存:

css:行内写,每一个标签都需要重复写N多代码,这当然是不明智的;

css:嵌入式,相比行内,容易维护,但是不能缓存

css:外链式,相比嵌入式,不仅容易维护,而且还可以缓存;

缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。

因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在用完后还是会把文件送到硬盘等存储器里永久存储。电脑里最大的缓存就是内存条了,最快的是CPU上镶的L1和L2缓存,显卡的显存是给显卡运算芯片用的缓存,硬盘上也有16M或者32M的缓存。

为了适用不同的版本,前端开发的时候,一般会有两个思路:

&优雅降级,渐进增强;

从noscript标签引深出的两种编程思想(优雅降低,渐进增强);在一些页面不支持javascript或者javascript被禁用的时候;script标签内的内容是失效的,这个时候会显示noscript;

优雅降低,就是按照支持度最高的浏览器标准来写代码,一般是以chrome为准,对于技术支持较旧的浏览器,只要不影响使用都可以不处理(比如圆角效果border-radius在低版本IE中是没有圆角效果的,但却并不影响正常阅读,那就不管了),如果有功能方面在低版本无法正常,就做低版本的兼容,比如兼容到IE8/IE6;我自己走的路线是优雅降级;

渐进增强,是以技术支持最低的浏览器为准,假设以IE6为准(如果兼容到IE8,就以IE8为准),写的代码在IE6/8中没问题后,在补充一些高级浏览器支持的效果;

广义来说,其实要定义一个基准线,在此之上的增强叫做渐进增强,在此之下的兼容叫优雅降级。这个基准线对于我,是允许使用javascript、cookie和css的IE8浏览器。

不过狭义而言,渐进增强一般说的是使用CSS3技术,在不影响老浏览器的正常显示与使用情形下来增强体验,而优雅降级则是体现html标签的语义,以便在js/css的加载失败/被禁用时,也不影响用户的相应功能。

在写CSS3的时候,推荐渐进增强;

在写JS的时候,推荐优雅降级;

/*错误(顺序)*/:

border-radius: 30px 10px;
-webkit-border-radius: 30px 10px; /*正确(顺序)*/: -webkit-border-radius: 30px 10px;
border-radius: 30px 10px;

o webkit moz ms 分别对应不同的内核;

-moz-对应 Firefox,

-webkit-对应 Safari and Chrome

-ms- 对应IE

-o- for Opera(记忆中,在一篇国外的文档上看到,欧朋是没有明确用 -o 这个前缀的,把他写上是为了向后兼容,适应未来;现在一时翻不到那篇文章了,感兴趣的可以多了解下)

&Javascript的文档模式

分为普通模式和严格模式,正常的都是普通模式,严格模式是解决javascript本身的语法问题;

*消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

*消除代码运行的一些不安全之处,保证代码运行的安全;

*提高编译器效率,增加运行速度;

*为未来新版本的Javascript做好铺垫。

进入严格模式的方式,加入"use strict";字符串就可以了;在js文件全局放,就是全部严格模式;在function内放,就是当前的方法是严格模式;一般我们都是用普通模式;现在的插件类库框架,一般都会基于严格模式下开发以确保程序的稳健;

&ES6

ECMAScript 是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言,解决了一些ES5中代码不严谨的规则;

但是遗憾的是现在即时你写ES6,也需要babel之类的转码器转成ES5,否则浏览器会报错;

要学习Javascript,ES5是必须会的,如果ES5的基础打的好,ES6一个礼拜就熟练入手了,因为他是ES6是基于ES5的改变和优化,你知道其中的原理后,很容易过渡,现在浏览器也没有全面支持,你有大把的时间研究ES5,ES5才是根基,等ES6,ES7全面普及了,笔记里会总结ES6,但是正常的演示代码基于ES5;


typeof(null) 输出的是什么==>object typeof typeof(null)===>string

[JavaScript脚本放在哪里]:http://www.cnblogs.com/ddyq/archive/2012/03/06/2382816.html

[javascript写到里面,写到里面,写到下面,这三种有什么区别?] :https://zhidao.baidu.com/question/303653753295755124.html

[标签中href="javascript:;"]:http://blog.csdn.net/u013720328/article/details/50803076

数据类型

ECMAScript中有5种简单的数据类型,也称为基本数据类型;Undefined、Null、Boolean、Number、String。

一种复杂的数据类型,Object;(typeof检测还有一种特殊的Funtion);

object本质是由一组无序的键值对组成的;

从技术的角度上讲,函数在ECMAScript中是对象,不是一种数据类型,属于对象,在就是里万物皆对象的,但是,函数也确实有一些特殊的属性,因此通过typeof操作符来区分也是有必要的;

typeof 运算符总是会返回一个字符串:

typeof检测任何数据,返回的都是一个字符串,两次和两次以上的连续typeof结果肯定都是string;

字符串一旦被创建,其值是不能改变的,若要改变必须销毁原有字符串,然后用另一个包含新值的字符串填充改变量;

toString()和String() ,Eval()

toString()

把别的类型数据,转为字符串

适用类型

Number/Boolean/String/Object

参数:number类型的数值基数;一般不需要写,仅作了解,

String()

null和undefined没有toString方法,所以转换的时候用String()函数;

var testNull=null;

console.log(typeof testNull);//object

//var testString2=testNull.toString();

//Uncaught TypeError:Cannot read property 'toString' of null

var testString3=String(testNull);

console.log(typeof testString3);//string

Eval()

计算字符串表达式的值并以数值形式返回;

//eval

var evalVal="1+2+5+8+10";

console.log(typeof evalVal);//string

var evalComputed=eval(evalVal);

console.log(evalComputed,typeof evalComputed);//26 "number"

如果把某个值转化为字符串,可以有一个快捷的方式,就是把它与一个字符串""相加就可以了;

//+""用来转换字符串
var numVal=2;
var boolVal=false;
var nullVal=null;
var undefinedVal=undefined; var numValPlus=numVal+"";
var boolValPlus=boolVal+"";
var nullPlus=nullVal+"";
var undefinedPlus=undefinedVal+"";z;
console.log(numValPlus,typeof numValPlus);//2 string
console.log(boolValPlus,typeof boolValPlus);//false string
console.log(nullPlus,typeof nullPlus);//null string console.log(undefinedPlus,typeof undefinedPlus);// undefined string

纯属个人观点,仅供参考!

<a>标签中href="javascript:;"** 为什么 style不用src**的更多相关文章

  1. 标签中href="javascript:;"表示什么意思?

    1.标签的 href 属性用于指定超链接目标的 URL,href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段. 2.javascript: 是一个伪 ...

  2. <a>标签中href="javascript:;"

    javascript: 是一个伪协议,其他的伪协议还有 mail:  tel:  file:  等等. 1 <a id="jsPswEdit" class="set ...

  3. <a>标签中href="javascript:;"的意思

    <a> 标签的 href 属性用于指定超链接目标的 URL,href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段. 这里的href=&q ...

  4. Web - <a>标签中href="javascript:;"

    javascript: 是一个伪协议,其他的伪协议还有 mail:  tel:  file:  等等. 1 <a id="jsPswEdit" class="set ...

  5. a标签中的javascript:;是什么

    a标签中的javascript:;是什么 一.问题 <a>标签中href="javascript:;"表示什么意思?? <a id="jsPswEdit ...

  6. Html A标签中 href 和 onclick用法、区别、优先级别

    原文:Html A标签中 href 和 onclick用法.区别.优先级别 如果不设置 href属性在IE6下面会不响应hover.双击后会选中标签的父容器而非这个一a标签(IE下都存在这一问题). ...

  7. a标签中href=""的几种用法(转)

    a标签中href=""的几种用法   标签: html / a标签 / javascript 46371 众所周知,a标签的最重要功能是实现超链接和锚点.而且,大多数人认为a标签最 ...

  8. a标签中href属性引起的页面不跳转问题

    先简单描述问题,今天在做一个简单的提交页面的时候,碰到了跳转不了的问题.其中a标签的形式<a href="" onclick="submit()"> ...

  9. A标签中 href 和 onclick用法、区别、优先级别

    (内容摘自:https://blog.csdn.net/chenchunlin526/article/details/77346049) Html A标签中 href 和 onclick 同时使用的问 ...

随机推荐

  1. 开发测试技巧|辅助开发调试:goolge浏览器利用F12在控制台输入脚本实现表单自动填充

    一个开发测试技巧的指引和截图,利用google浏览器的F12调试和Console执行,注入JavaScript脚本实现表单的自动填充和测试. 原文链接: http://www.lookdaima.co ...

  2. Navicat连接Oracle 报 ORA-12737 set CHS16GBK错误

            4,680   今天看到0day5上面更新了一个用友ERP的漏洞,确实可以下载任意文件:但是用友ERP基本上都是使用了oracle数据库,必须要有一个好的数据库连接工具才可以,Navi ...

  3. 第3章 Git使用人门

    [初识Github] 首先让我们大家一起喊一句“Hello Github”.YEAH!就是这样. Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理 ...

  4. Ubuntu 16.04 LTS 降级安装GCC 4.8

    转载自https://www.linuxidc.com/Linux/2017-03/142299.htm Ubuntu 16.04 LTS 降级安装GCC 4.8 [日期:2017-03-28] 来源 ...

  5. Deuteronomy

    You should choose the right path when you can choose, and you should choose the right path even if y ...

  6. svn 更新

    dev更新流程: 1.打开软件,文件—>打开,弹出右边对话框链接dev地址      2.在窗口输入cd /var/www/user 回车 3.输入svn up 则更新dev代码完成 本地提交到 ...

  7. eclipse 自动创建web.xml

    eclipse 自动创建web.xml 以前每次创建web项目的时候,总是从其他的项目中拷贝一个web.xml文件到新项目,然后改吧改吧就可以了,但是这终究是一件麻烦的事,要是能够通过软件自动创建,那 ...

  8. 全排列(dfs)

    无重复元素的全排列 输入n(<=11),按从小到大输出数字1 到n 个的全部排列.样例:输入:3输出:1:1 2 32:1 3 23:2 1 34:2 3 15:3 1 26:3 2 1 全排列 ...

  9. Kubernetes1.91(K8s)安装部署过程(八)-- kubernetes-dashboard安装

    kubernets-dashboard顾名思义是操作面板安装,也就是可视化管理机器,同意我们用镜像结合配置文件部署. 1.下载镜像: docker pull registry.docker-cn.co ...

  10. 深入浅出的webpack构建工具---webpack3版本的CommonsChunkPlugin详解(六)

    阅读目录 一:什么是CommonsChunkPlugin, 它的作用是什么? 二:webpack3中CommonsChunkPlugin配置项及含义? 回到顶部 一:什么是CommonsChunkPl ...