JS输入装备属性指令的操作需要注意哪些事项

Posts - 119,
Articles - 20,
Comments - 1144
console.log( " Hi, I'm Barret, a Web Developer, try to be Excellent~ " );
15:40 by Barret Lee, ... 阅读,
  JavaScript是一门弱语言,她使用起来不像C/C++那样有十分繁琐的内存管理、类型定义等,所以学习JavaScript的门槛相对来说也比较低。门槛低并不意味着这门语言很简单,我们在使用的时候会遇到各种千奇百怪的问题,有些是因为浏览器的兼容性引起的,有些是因为JS语法本身所引起的,还有些是因为ECMAScript标准的改变而引起的,总之,这样的问题很多,下面列举
几个比较容易忽略的点
  1. switch的case判断
var t = event.keyC
switch (t) {
case '65':
alert("Yay!");
  当keycode为65时,你会发现,咦?怎么木有alert! 这里需要明确的是,switch在判断的时候使用的是全等号&===&,全等号在比较的时候首先看数据类型是不是一样的,而在这里,t是Number类型,而'65'是String。
  2. 严格模式下this&window
"use strict";
var global = (function() {
console.log(this); //undefined
  有时候我们需要用global来缓存this这个全局环境(可能是window,也可能是其他的,比如在Worker中没有window对象,用self代表Global),但是在严格模式下函数作用域返回的this为undefined,一般,我们可以采用如下方式获取到Global对象:
"use strict";
var global = (function() {
var t = new Function("return this")();
console.log(t);
"use strict";
var global = (function() {
var t = window.eval("this");
console.log(t);
  因为new Function是在全局作用域上执行的,所以返回的是Global对象,下面的eval需要一起注意,eval前如果不交window,那它便处于function作用域中(javascript利用function里分隔作用域),自然不会返回window或者全局对象。使用Function要注意一点:
(function () {
var local = 1;
new Function("console.log(typeof local);")(); // logs undefined
  new Function工作在Global作用域链下,所以是访问不到匿名函数中local的~
  3. 变量提升(Hoisting)
var t = "global";
function foo(){
console.log(t); //undefined
return;    var t = "local";
  这是一个老生常谈的问题,var最好不好到处散布。所谓的变量提升,在这里存在两个作用域,一个是Global作用域,他下面有t和foo这两个变量,而foo指向的是foo作用域,foo作用域下有一个t变量,画个图演示下吧
[Global Scope]
[String] undefined -& "global"
|----- foo [Reference] [foo Scope]
[foo Scope]
[String] undefined -& "local"
  刚进入全局作用域链的时候,程序扫描到t和foo两个变量,于是给这个t赋值为undefined,扫面完了之后,看到t有值,于是给赋值&global&,foo指向[foo Scope],于是进入[foo Scope],继续扫描函数作用域链下的变量,发现目标t之后,赋值为undefined,在console.log时,是这样的:
var t = "global";
function foo(){
var // 等同于 -& var t =
console.log(t); //undefined
return;  
var t = "local"; }
  上面的例子写不写return结果都是一样的,加return,只是为了更好的表达变量提升这个动作的存在。一般比较推荐的变量定义方式:
function foo(a, b, c) {
var x = 1,
baz = "something";
  一个var,后边连着一串变量的定义。
附:javascript严格模式下要注意的地方(转自)
&1. 变量必须声明才能使用
"use strict";
a=1; //缺少var语句做声明,因此报错
"use strict";
var a=b=1; //错误 b未声明
&2. 函数声明语句(不包括表达式)不允许在普通代码块(不包括闭包)中使用
"use strict";
(function(){
//闭包中是允许使用函数声明语句的
function func(){};
var f=function(){}; //函数声明表达式允许
function func(){}; //函数声明语句在普通闭包中,错误
3. 闭包内的this不指向Global对象
"use strict";
(function(){
alert(this); //输出undefined
4. 对象属性和函数形参不能重复声明
"use strict";
var o={a:1,a:1};
//这个对象定义了两个a属性,因此报错
"use strict";
function func(a,a){};
//这个函数的两个形参都是a,因此报错
5. eval拥有类似闭包的作用域
"use strict";
var a=1,b=1;
eval("var a=2");
window.eval("var b=2");
alert(a); //输出1 因为运行的a变成了eval作用域的局部变量
alert(b); //输出2 window.eval依然是全局作用域
6. callee和caller属性无法使用
"use strict";
function func(){
return arguments. //错误 callee无法使用
7. with语句无法使用
"use strict";
8. 八进制数字常量无法使用
"use strict";
var a=0999; //十进制,可以使用
var b=0123; //八禁止,无法使用
9. 普通模式下的一些无效操作变成错误
"use strict";
//错误 无法删除var声明的变量
"use strict";
var o={get a(){}};
//错误 给只读属性赋值
简单总结这么多,推荐&&童鞋的博客,细致入微、内容深刻,博客入口:
关于JavaScript strict mode的详细介绍,请移步:JavaScript(12)
把javascript插入到html页面中要使用&script&元素。使用这个元素可以把javascript嵌入到html页面中,让脚本与标记混合在一起,也可以使用外部的javascript文件,需要注意的几点有:
1.在包含外部javascript文件时,必须将src属性设置为指向相应文件的url。这个文件既可以是与包含它的页面位于同一服务器上的文件,也可以是其他任何域中的文件。
2.所有&script&元素都会按照他们在页面中出现的先后顺序依次被解析。在不使用defer和async属性的情况下,只有在解析完前面的&script&元素中的代码之后,才会开始解析后面的&script&元素中的代码。
defer:&script&六个属性之一。表示脚本可以延迟到文档完全被解析后显示后再执行。只对外部脚本文件有效。HTML5规范要求脚本按照他们出现的先后顺序执行,因此,多个defer属性的script脚本会按顺序执行,并且先于DOMContentLoaded事件。在实际使用当中不一定会按照这种情况执行。支持html5的实现会忽略这个属性。因此把脚本放到页面底部是最佳选择。async,和defer类似,只适用于外部文件,告诉浏览器立即下载文件。但是与defer不同的是,标记为async的脚本并不保证按照指定他们的先后顺序执行。
3.由于浏览器会先解析完不使用defer属性的&script&元素中代码,然后再解析后面的内容,所以一般应该把&script&元素放在页面最后,即主要内容后面,&/body&标签前面。
4.使用defer属性可以让脚本在文档完全呈现之后再执行,延迟脚本总是按照指定他们的顺序执行。
5.使用async属性可以表示当前脚本不必等待其他脚本,也不必阻塞文档呈现。
另外,当浏览器不支持javascript时可以创造一个&noscript&元素,当浏览器不支持javascript时显示相关内容。这个元素能够包含出现在文档&body&中的任何html元素——&script&除外。包含&noscript&元素中的内容只有在下列情况下才会显示出来:
浏览器不支持脚本
浏览器支持脚本,但是脚本被禁用。
符合任何一个条件,浏览器都会显示&noscript&元素中的内容。
&!DOCTYPE html&
&meta charset=&utf-8&&
&title&&/title&
&script type=&text/javascript& defer=&defer& src=&style.js& &
&noscript&
本页面需要浏览器启用javascript!
&/noscript&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:55567次
积分:1036
积分:1036
排名:千里之外
原创:54篇
(4)(1)(10)(1)(13)(31)JS属性读写操作+if判断注意事项
来源:博客园

 
js中不允许出现“ - ” 
页面中改变文字大小-案例:

&!doctype html&
&html lang="en"&
&head&
&meta charset="UTF-8"&
&title&页面中改变文字大小-案例&/title&
&script type="text/javascript"&
window.onload = function () {
var obtn1 = document.getElementById("btn1");
var obtn2 = document.getElementById("btn2");
var op1 = document.getElementById("p1");

var num = 15;
obtn1.onclick = function(){
if (num & 12) {
// num = mum - 1;
// num += 1;
num --; //每次递减一个
p1.style.fontSize = num + "px";
obtn2.onclick = function(){
if (num & 22) {
num ++;
// js中不允许出现“ - ” 
// font-size
fontSize
p1.style.fontSize = num + "px";
}
&/script&
&/head&
&body&
&input id="btn1" type="button" value="-" /&
&input id="btn2" type="button" value="+" /&
&p id="p1" style="font-size: 15"&网易科技讯 3月24日消息,据《福布斯》网站报道,虽然苹果公司不愿配合美国联邦调查局破解加州枪击案嫌犯的iPhone手机,但联调局似乎已经找到了其他的帮手,而且破解费用可能十分便宜,只需要1500美元。
目前的多数报道称,以色列一家名为Cellebrite的公司愿意向美国联调局提供帮助,解锁嫌犯手机。美国联调局本周态度急转,称可能有另一种方法破解该设备,而无需苹果协助。原定于本周早些时候就破解一事召开的法院听证会因此被无限期延迟。
iPhone漏洞可能非常昂贵,黑客可以因为发现一个漏洞赚取上百万美元。不过,参考以往的案例,Cellebrite破解服务的价格可以非常低廉。
欧洲的一起案件或许是此种iPhone破解只需较低成本便能完成的佐证。意大利法院目前正在聆讯一桩毁容攻击案,该案嫌犯声称忘记了自己iPhone 5手机的开机密码。法院寻找专家破解这部装有iOS 8系统的手机,最后找到了Cellebrite公司。&/p&
&/body&
&/html&


// js中不允许出现“ - ” 
// font-size
fontSize
p1.style.fontSize = num + "px";

 
 
 
class

op.className = "red";
//class 保留字
关键字: var function
---不可以使用
//class =& className

 
 
 
 
点击按钮变成复选框checkbox

&input id="inp1" type="button"/&


&script&
var olnp = document.getElementById("inp1");
olnp.onclick = function(){
olnp.type = "checkbox";
// IE6 IE7 IE8 不支持 会报错!!!
// 可以时候隐藏显示方法来替换这种 点击按钮隐藏按钮 复选框显示
}
&/script&

 
 
 
改变DIV的浮动

oDIV.style.float = "left";

//保险写法:
oDIV.style.styleFloat = "left";
oDIV.style.cssFloat = "left";

//IE(styleFloat)、非IE(CSSFloat)
//可以使用调用className的方式

 
 
 
判断注意事项
所有的相对路径都别拿来做判断。。。
  img src
rel="nofollow" href="css.css"
绝对路径可以:
  img src="http://........jpg"
颜色值不要拿来做判断
  color:
rgb(255,255,0)
innerHTML值不要拿来做判断。。。
 
 
如何做图片判断示例:

&!doctype html&
&html lang="en"&
&head&
&meta charset="UTF-8"&
&title&if图片判断&/title&
&/head&
&body&
&img id="img1" src="img1.png"/&
&/body&
&script type="text/javascript"&
var oImg = document.getElementById("img1");
var onoff = true;
// 布尔值:true 真 1
false 假 0

oImg.onclick = function () {
if (onoff) {
oImg.src = "img2.png";
onoff = false;
}else{
oImg.src = "img1.png";
onoff = true;
}
&/script&
&/html&

免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动

我要回帖

更多关于 输入装备属性指令 的文章

 

随机推荐