<a>标签中href="javascript:;"** 为什么 style不用src**
&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**的更多相关文章
- 标签中href="javascript:;"表示什么意思?
1.标签的 href 属性用于指定超链接目标的 URL,href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段. 2.javascript: 是一个伪 ...
- <a>标签中href="javascript:;"
javascript: 是一个伪协议,其他的伪协议还有 mail: tel: file: 等等. 1 <a id="jsPswEdit" class="set ...
- <a>标签中href="javascript:;"的意思
<a> 标签的 href 属性用于指定超链接目标的 URL,href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段. 这里的href=&q ...
- Web - <a>标签中href="javascript:;"
javascript: 是一个伪协议,其他的伪协议还有 mail: tel: file: 等等. 1 <a id="jsPswEdit" class="set ...
- a标签中的javascript:;是什么
a标签中的javascript:;是什么 一.问题 <a>标签中href="javascript:;"表示什么意思?? <a id="jsPswEdit ...
- Html A标签中 href 和 onclick用法、区别、优先级别
原文:Html A标签中 href 和 onclick用法.区别.优先级别 如果不设置 href属性在IE6下面会不响应hover.双击后会选中标签的父容器而非这个一a标签(IE下都存在这一问题). ...
- a标签中href=""的几种用法(转)
a标签中href=""的几种用法 标签: html / a标签 / javascript 46371 众所周知,a标签的最重要功能是实现超链接和锚点.而且,大多数人认为a标签最 ...
- a标签中href属性引起的页面不跳转问题
先简单描述问题,今天在做一个简单的提交页面的时候,碰到了跳转不了的问题.其中a标签的形式<a href="" onclick="submit()"> ...
- A标签中 href 和 onclick用法、区别、优先级别
(内容摘自:https://blog.csdn.net/chenchunlin526/article/details/77346049) Html A标签中 href 和 onclick 同时使用的问 ...
随机推荐
- Numbers
Encoding style, data structure, more content about the list, use the list as a stack, use the list a ...
- <项目需求规格说明书> - 福大易宝
福大易宝-<项目需求规格说明书> 流程 在开会时统一了项目的开发背景,具体功能,然后在同一个工作环境下进行该说明书的编写. 分工 1.李佳铭.杜宏庆共同负责引言和项目描述的内容. 2.刘双 ...
- python3编写网络爬虫13-Ajax数据爬取
一.Ajax数据爬取 1. 简介:Ajax 全称Asynchronous JavaScript and XML 异步的Javascript和XML. 它不是一门编程语言,而是利用JavaScript在 ...
- 命令行方式安装Pycharm
sudo apt install snapd snapd-xdg-open snap refresh sudo snap install pycharm-professional --classic
- Python yield的用法
yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法. 只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: def addlist( ...
- centos7升级内核版本
本文转载http://blog.csdn.net/nciasd/article/details/51490146,大神非常厉害!!!!! 查看当前系统的内核版本 # uname -r 1.导入key ...
- 【洛谷】【搜索+剪枝】P1731 [NOI1999]生日蛋糕
[题目背景:] 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. [题目描述:] 设从下往上数第i(1<=i<=M)层蛋糕是半径为Ri ...
- ThinkPHP5.0 实现 app微信支付功能
相对于之前随笔写的<ThinkPHP5.0实现app支付宝支付功能>来说,php对接app微信支付功能就相对简单的多了,最近有加我的朋友问到app微信支付,所以我把app微信支付的demo ...
- MySQL比like语句更高效写法locate position instr find_in_set
你是否一直在寻找比MySQL的LIKE语句更高效的方法的,下面我就为你介绍几种. LIKE语句 SELECT `column` FROM `table` where `condition` like ...
- dubbo报错Data length too large: 10710120处理,及服务提供者协议配置详细说明
工作中遇到以下报错信息 cause: java.io.IOException: Data length too large: 10710120, max payload: 8388608, chann ...