关于js

Javascript是一种由Netscape的LiveScript发展而来的脚本语言,主要目的是为了解决服务器同样,又是来自商标的冲突,呵呵有名的微软公司对这门语言的显示版本去了个几乎是家喻户晓的名字——“Jscript”。不过即便是有这么多的名字,现在人们还是对“JavaScript”这个名字情有独钟,光大的人们也更加的知道这个名字,但是“ECMAScript”一直都是被指代成语言标准。
Ps:JavaScript和java没有关系,只是希望外观像Java,所以取名JavaScript。
我们大组长猜测了一种,就是当时的java很火,蹭蹭热度?

JavaScript的局限性:
1)目前在互联网上有很多浏览器,如Firefox、InternetExplorer、Opera等,
但每种浏览器支持JavaScript的程度是不一样的,不同的浏览器在浏览一个带
有JavaScript脚本的主页时,由于对JavaScript的支持稍有不同,其效果会有
一定的差距,有时甚至会显示不出来。兼容问题
2)当把JavaScript的一个设计目标设定为“Web安全性”时,就需要牺牲
JavaScript的一些功能。因此,纯粹的JavaScript将不能打开、读写和保存用
户计算机上的文件。其有权访问的唯一信息就是该JavaScript所嵌入的那个
Web主页中的信息,简言之,JavaScript将只存在于它自己的小小世界—Web
主页里。

JavaScript属于动态语言(弱类型语言)
动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。

静态语言(强类型语言)
静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。
例如:C++、Java、Delphi、C#等。

强类型定义语言
强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。
弱类型定义语言
数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。
两者区别
特性
强类型语言是一旦变量的类型被确定,就不能转化的语言。
弱类型语言则反之,一个变量的类型是由其应用上下文确定的。
静态语言的优势
由于类型的强制声明,使得IDE有很强的代码感知能力,故,在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中,依托IDE对系统的开发很有保障;
由于静态语言相对比较封闭,使得第三方开发包对代码的侵害性可以降到最低;
动态语言的优势
思维不受束缚,可以任意发挥,把更多的精力放在产品本身上;
集中思考业务逻辑实现,思考过程即实现过程;

javaScript引入方式:

1、嵌入式:
文档加载和解析方式从上到下,意味着嵌入式的javaScript也将从上至下依次解析,所以需要注意嵌入式的javaScript存放的位置,因为页面上javaScript内部所有代码求值完毕以前,页面中的其余内容都不会被浏览器加载或显示。
外部引用:
2、head中引用JavaScript外部文件,意味着必须等到JavaScript代码被全部下载、解析、执行完成后才开始呈现页面内容,这种引入方式会导致页面呈现的延迟,所有慎用。body内容之后引用,则先呈现页面内容,再下载JavaScript代码,这种加载方式会出现页面可能在一段时间内无法进行交互,因为JavaScript代码没有被解析完成。当然以用户体验为先,我们选择第二种引入方式。

HTML中嵌入JavaScript代码虽然没问题,但一般认为最好的做法还是尽可能的使用外部文件来包含JavaScript代码。
优势:
可维护性:遍及不同HTML页面的JavaScript会造成维护问题,
可缓存:浏览器能够根据具体的设置缓存链接的所有外部JavaScript文件,也就是,如果两个页面都使用同一个文件,那么文件只需要加载一次。

浏览器内核了解:
浏览器内核分为渲染引擎和js引擎。渲染引擎主要负责结构与样式,即网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。js引擎则负责解析JavaScript,实现网页的动态效果。一开始渲染引擎与js引擎并没有区分的很明确,但是后来js引擎越来越独立,内核倾向于只指渲染引擎。内核可以分为Trident、Gecko、Blink、Webkit

Bug解决方法
小黄鸭调试法(Rubber duck debugging)
  又称橡皮鸭调试法,黄鸭除虫法。就是通过向不懂程序的人(只要是不了解要解释的代码的任何一个人都可以,比将你写的代码解释给你的同事)详细解释代码,从中发现问题或者获取灵感! 此概念是参照于一个来自《程序员修炼之道》书中的一个故事。传说中程序大师随身携带一只小黄鸭,在调试代码的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码。
二分定位法
  通常来说,无论BUG因此多深,通过二分定位法基本可以确定问题所在!那么什么是二分定位法?就是在程序关键点(可能的出错点)进行分割,看看还会不会出问题,类似二分查找的方法,逐步缩小问题范围。
  IDE调试法
  此法在程序开发阶段是绝对的利器!通过加断点、单步调试等可以快速的发现问题所在。突然想到了宇宙第一IDE:Visual Studio。但是,该方法有个比较大的限制:对于非逻辑性错误(比如内存泄露)来说,IDE调试法就有些乏力了。因为单纯的调试,可能BUG并不会出现。而且一旦出现该种问题,可能会直接导致IDE调试不可用。
  其实,IDE调试,不仅仅是找BUG解决问题,对于分析代码逻辑来说无二选择。对于某些设计逻辑的实现,是否符合当初的设计。仅仅通过最终结果不能证明正确,还是需要通过IDE来验证!殊不知,在破解、逆向领域,调试绝对的NB,谁会有心情闷头看那一堆汇编代码,直接上调试器分析多好。

重读法
  这种方法比较简单直接,就是通过一遍遍地阅读代码来发现问题。
重构法
  终极必杀器。如果最终无论如何也不能找到BUG的问题所在,那就直接重构吧!重构有个问题需要注意,就是重构时不要再参看之前的代码!重构必须要考虑结构性的设计问题!
  当然,对于简单的代码(对整体代码结构影响不大),直接重写会更迅速!
总结

					function  dd()         {   var   shit = document.getElementById('box');
									\\函数名             \\变量   \\注意=是赋值,==才是等于
									\\  后面的单词采取的是驼峰式写法!!要严格按照要求。
									\\ 单词可以清晰读出,因为ID是唯一,所以element单数
									\\若不是ID,如class 则 elements!!而且因为不唯一,所
									以每次写完都要写出是第几个。如数组一般,从0开始为1
									。
														shit.style.marginLeft=300+‘px’;
												\\注意,一定要符合驼峰,  ;符号不能省略。
												}
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>点我,点点我</title>
		<style>
			.nav .lf{
				float: left;
				margin-right: 100px;	
				border: 1px solid blue;
			}
			#drop-down-contain{
				background-color: red;
				display:none;
			}
		</style>
	</head>
	<body>
		<ul class="nav">
			<li class="drop-dowm lf" onclick="damn()">JavaScript标准参考教程(alpha)
				<ol id="drop-down-contain">
					<li>我</li>
					<li>是</li>
					<li>一</li>
					<li>个</li>
					<li>小</li>
				</ol>
			</li>
			<li class="lf" >导论</li>
			<li class="lf" >JavaScript语言历史</li>
			<li class="lf" >其他</li>
		</ul>
		<script>
			boolean num=true;
			function damn(){
//				num++
//				var dd=document.getElementById('drop-down-contain');
//				if(num%2==0){
//					dd.style.display="none";
//				}else{
//					dd.style.display="block";
//				}
			
				console.log(dd)
			}
			
		</script>
		<script>
			window.alert("你真帅");
		</script>
	</body>
</html>

 <!--if(disp=="none"){
 	bl
 	
 }
 else{
 	none;
 }-->
 
 
 <!--
 	
 	if(){
 		
 }
 else{
 	
 }
 	
 	
 	
 	
 	
 	
 -->
 供参考
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值