javascript知识补漏(持续补充)


1、变量声明时如果不使用 var 关键字,那么它就是一个全局变量,即便它在函数内定义。全局变量可应用于页面上的所有脚本。

2、在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。

3、如果重新声明 JavaScript 变量,该变量的值不会丢失。在以下两条语句执行后,变量 carname 的值依然是 "Volvo":

var carname="Volvo"; 
var carname;


4、您可以文本字符串中使用反斜杠对代码行进行换行。下面的例子会正确地显示:

document.write("你好 \
世界!");


5、在 JavaScript 中创建三种消息框:警告框、确认框、提示框。 可加HTML标签

window.alert() 方法可以不带上window对象,直接使用alert()方法。当警告框出现后,用户需要点击确定按钮才能继续进行操作。

alert("你好,我是一个警告框!");

window.confirm() 方法可以不带上window对象,直接使用confirm()方法。当确认卡弹出时,用户可以点击 "确认" 或者 "取消" 来确定用户操作。

confirm("是否删除");

window.prompt() 方法可以不带上window对象,直接使用prompt()方法。当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。

prompt("请输入用户名","admin");


6、JavaScript 支持嵌套函数。嵌套函数可以访问上一层的函数变量。

javas闭包:闭包就是一个函数引用另一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私有变量。这是优点也是缺点,不必要的闭包只会增加内存消耗。或者说闭包就是子函数可以使用父函数的局部变量,还有父函数的参数。

varadd = (function(){ 

varcounter = 0;  

returnfunction(){returncounter += 1;}

})()

add();

add();

add();// 计数器为 3

注意add方法中的return, 它return的并不是1,2,3这样的数值,而是return了一个方法,并且把这个方法赋值给了add变量。

那么在这个function自运行一遍之后,其实最后赋值给add的是return counter += 1 这段代码。

所以后面每次调用add() 其实都是在调用return counter += 1。


7、JavaScript事件用途

onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。

onload 和 onunload 事件可用于处理 cookie。


8、你可以使用 typeof 操作符来检测变量的数据类型。

typeof "John"                // 返回 string 
typeof 3.14                  // 返回 number
typeof false                 // 返回 boolean
typeof [1,2,3,4]             // 返回 object
typeof {name:'John', age:34} // 返回 object

判断某个变量是否是某个对象的实例则要选择使用另一个关键语法 instanceof

var result = objectName instanceof objectType

返回布尔值,如果是指定类型返回 true,否则返回 false


9、任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined

null是一个只有一个值的特殊类型。表示一个空对象引用。用 typeof 检测 null 返回是object。

typeof undefined             // undefined
typeof null                  // object
null === undefined           // false
null == undefined            // true

PS: ==   用于比较   判断 两者相等      ==在比较的时候可以转自动换数据类型

===用于严格比较   判断两者严格相等     ===严格比较,不会进行自动转换,要求进行比较的操作数必须类型一致,不一致时返回flase。

在 JavaScript 中, null 用于对象, undefined 用于变量,属性和方法。

对象只有被定义才有可能为 null,否则为 undefined。

10、类型转换部分。在 JavaScript 中有 

5 种不同的数据类型:String number boolean function object

3 种对象类型:Object Date Array

2 个不包含任何值的数据类型: null undefined

  • NaN 的数据类型是 number
  • 数组(Array)的数据类型是 object
  • 日期(Date)的数据类型为 object
  • null 的数据类型是 object
  • 未定义变量的数据类型为 undefined

如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 Object。


11、constructor 属性返回所有 JavaScript 变量的构造函数。

你可以使用 constructor 属性来查看对象是否为数组或日期:

return myArray.constructor.toString().indexOf("Array") > -1; //true

 return myDate.constructor.toString().indexOf("Date") > -1; // true


12、转换类型全局方法 Number() 可以将字符串转换为数字。非法字符串会转换为 NaN (不是个数字)


13、你可以使用字符来定义和创建 JavaScript 对象:

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

你可以通过两种方式访问对象属性:

person.lastName;person["lastName"];


11、在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

var patt = /e/; /正则表达式主体/修饰符(i,g,m可选项)
patt.test("The best things in life are free!");

在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。

search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

varstr = "Visit Runoob!"

varn = str.search(/Runoob/i); // 6

replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

str.replace(/microsoft/i,"Runoob");


12、debuggerdebugger 关键字用于停止执行 JavaScript,并调用调试函数。

这个关键字与在调试工具中设置断点的效果是一样的。如果没有调试可用,debugger 语句将无法工作。


13、JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。

JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

x = 5// 变量 x 设置为 5
elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x;                     // 在元素中显示 x
var x; // 声明 x

JavaScript 只有声明的变量会提升,初始化的不会。

var x = 5// 初始化 x
elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x + " " + y;           // 显示 x 和 y
var y = 7// 初始化 y y 输出了 undefined


14、"use strict" 指令

在 JavaScript 1.8.5 (ECMAScript5) 中新增。

它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。

"use strict" 的目的是指定代码在严格条件下执行。严格模式下你不能使用未声明的变量。

"use strict";
x = 3.14;       // 报错 (x 未定义)


15、JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储。所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定

var x = 0.1;
var y = 0.2;
var z = x + y            // z 的结果为 0.3
if (z == 0.3)            // 返回 false


16、在每个代码块中 JavaScript 不会创建一个新的作用域,一般各个代码块的作用域都是全局的。

以下代码的的变量 i 返回 10,而不是 undefined:

for (var i = 0; i < 10; i++) {
    // some code
}
return i;


17、href="#"与href="javascript:void(0)"的区别

# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。而javascript:void(0), 仅仅表示一个死链接。

在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。如果你要定义一个死链接请使用 javascript:void(0) 。


18、window对象

所有浏览器都支持 window 对象。它表示浏览器窗口。

所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

全局变量是 window 对象的属性。全局函数是 window 对象的方法。


甚至 HTML DOM 的 document 也是 window 对象的属性之一:

window.document.getElementById("header");

与此相同:

document.getElementById("header");


19、Window Location

window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

location.href 属性返回当前页面的 URL。

location.pathname 属性返回 URL 的路径名。

location.hostname 返回 web 主机的域名

location.pathname 返回当前页面的路径和文件名

location.port 返回 web 主机的端口 (80 或 443)

location.protocol 返回所使用的 web 协议(http:// 或 https://)


20、window history  

window.history 对象包含浏览器的历史。

history.back() - 与在浏览器点击后退按钮相同window.history.back();

history.forward() - 与在浏览器中点击向前按钮相同


21、Cookie 用于存储 web 页面的用户信息。

读取:document.cookie 将以字符串的方式返回所有的 cookie,类型格式: cookie1=value; cookie2=value; cookie3=value;

创建:document.cookie="username=John Doe"; //document.cookie=" key1 = value ;key2 = value";

修改:在 JavaScript 中,修改 cookie 类似于创建 cookie,旧的 cookie 将被覆盖。


22、json转换

JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

我们可以使用 JSON.parse() 方法将JSON数据转换为 JavaScript 对象。

eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

var obj = eval ("(" + txt + ")");

var txt = '{ "sites" : [' +'{ "name":"百度" , "url":"www.baidu.com" },' +
'{ "name":"google" , "url":"www.google.com" },' +'{ "name":"微博" , "url":"www.weibo.com" } ]}'; 
var obj = eval ("(" + txt + ")"); 
document.getElementById("name").innerHTML=obj.sites[0].name 
document.getElementById("url").innerHTML=obj.sites[0].url
JSON.parse() 方法 解析前要确保你的数据是标准的 JSON 格式,否则会解析出错。
var obj = JSON.parse('{ "name":"steveTao", "age":24, "height":"172" }');

JSON 通常用于与服务端交换数据。在向服务器发送数据时一般是字符串。

我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串

var obj = { " name " : " steveTao " , " age " : 24 , " height " : " 172 " } ;

var myJSON = JSON.stringify(obj);




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值