<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 同时使用的问 ...
随机推荐
- Python作业第一课
零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~ Python作业第一课1)登陆,三次输入锁定,下次不允许登陆2)设计一个三级菜单,菜单内容可自行定义, ...
- 使用JavaConfig和注解方式实现零xml配置的Spring MVC项目
1. 引言 Spring MVC是Spring框架重要组成部分,是一款非常优秀的Web框架.Spring MVC以DispatcherServlet为核心,通过可配置化的方式去处理各种web请求. 在 ...
- Lets encrypt安装及配置
letsencrypt recommend that most people with shell access use the Certbot ACME client.It can automate ...
- ZooKeeper学习总结 第二篇:ZooKeeper深入探讨
其实zookeeper系列的学习总结很早就写完了,这段时间在准备找工作的事情,就一直没有更新了.下边给大家送上,文中如有不恰当的地方,欢迎给予指证,不胜感谢!. 1. 数据模型 1.1. 只适合存储小 ...
- Installation Oracle11gR2 RAC---常见报错处理
第六章.报错处理 6.1 root.sh脚本执行失败处理 安装grid时,执行rootsh脚本报错如下: Adding Clusterware entries to inittab USM drive ...
- Java中关于AbstractQueuedSynchronizer的入门(一)
备注:博文仅仅是学习过程中的零散记录,后期整理. AbstractQueuedSynchronizer的简单介绍可以网上搜索,简单了解字段作用. 示例代码,分析获取锁的过程: import java. ...
- linux shell脚本调用java main方法 代码传值
#!/bin/bash #description: ljdjService export PRG_HOME=/ainmc/work/toptea/dataTransfer PRG_KEYWORD=pr ...
- Omi框架学习之旅 - 通过对象实例来实现组件通讯 及原理说明
组件通讯不是讲完了吗(上帝模式还没讲哈),怎么又多了种方式啊. 你484傻,多一种选择不好吗? 其实这个不属于组件通讯啦,只是当父组件实例安装和渲染完毕后,可以执行installed这个方法(默认是空 ...
- 解决Skyline 6.5版本中3DML模型单体化后外部网页挂接问题
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- [06] JSTL标准标签库
1.JSTL概述 之前在<[03-01] JSP自定义标签>中已经说明了自定义标签的概况,而JSTL也是一套标签库,不过是厂商已经定义好的标签库,我们不再需要自行进行定制,直接使用即可. ...