作为后端程序员,由于现在很多开发都是前后端分离,对与js代码的接触现在并不是很多,但还是需要理解一些js的基础知识,现在将平常接触到的js基础知识整理下。
1.页面加载时自动执行js的几种方法。
1)js方法,写在html的body标签里面调用
<html>
<body onload="load();">
</body>
</html>
2)js语句中调用
<script type="text/javascript">
function myfun() {
alert("this window.onload");
}
/*用window.onload调用myfun()*/
// 不要括号
window.onload = myfun;
</script>
3)onload方法
<script type="text/javascript">
window.onload = function(){
func1();
func2();
func3();
}
</script>
2.js中的函数是可以嵌套使用的,比如
function a(){
alert('test1');
function b(){
alert('test2');
}
function c(){
alert('test3');
}
b();
c();
}
a();
在函数a中又定义了两个函数b和c,这在java中是不允许嵌套定义的。
3.两种函数声明有什么区别?
var foo = function(){
// Some code
};
function bar(){
// Some code
};
我的理解,上面的函数可以看成时一个带返回值的函数,而下面则时一个不带返回值的函数
在实际执行的时候,实际会转换为下面的代码:
// foo bar的定义位置被提升
function bar(){
// Some code
};
var foo;
console.log(foo)
console.log(bar)
foo = function(){
// Some code
};
4.javascript中的对象
JavaScript有3大对象,分别是本地对象
、内置对象
和宿主对象
。
-
本地对象
- 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象。
- 简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。
- 这些引用类型在运行过程中需要通过new来创建所需的实例对象。
- 包含:
Object
、Array
、Date
、RegExp
、Function
、Boolean
、Number
、String
等。
-
内置对象
- 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象。
- 在 ECMAScript 程序开始执行前就存在,本身就是实例化内置对象,开发者无需再去实例化。
- 内置对象是本地对象的子集。
- 包含:
Global
和Math
。 - ECMAScript5中增添了
JSON
这个存在于全局的内置对象。
-
宿主对象
- 由 ECMAScript 实现的宿主环境提供的对象,包含两大类,一个是宿主提供,一个是自定义类对象。
- 所有非本地对象都属于宿主对象。
- 对于嵌入到网页中的JS来说,其宿主对象就是浏览器提供的对象,浏览器对象有很多,如
Window
和Document
等。 - 所有的
DOM
和BOM
对象都属于宿主对象。
本地对象也经常被叫做原生对象或内部对象,包含Global和Math在内的内置对象在《JavaScript高级程序设计》里也被叫做单体内置对象,很多时候,干脆也会直接把本地对象和内置对象统称为“内置对象”,也就是说除了宿主对象,剩下的都是ECMAScript的内部的“内置”对象。
5.javascript中的常见函数:
1).isNaN(X):函数用于检查其参数是否是非数字值。简单说,X为非数字类型的值时返回true,X为数字时返回false。
2)parseFloat函数:将字符串转换成符点数字形式。
3)parseInt函数:将符串转换成整数数字形式(可指定几进制)。
4)ceil函数:返回一个数字的最小整数值(大于或等于)。
5)floor函数:返回一个数字的最大整数值(小于或等于)。
6)round函数:返回一个数字的四舍五入值,类型是整数。
7)toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
6.什么是"JSON字符串",什么是"JSON对象",两者的区别?
a.JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样
b.JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert();
JSON对象:
var str2 = { "name": "deluyi", "sex": "man" };
JSON字符串:
var str1 = '{ "name": "deyuyi", "sex": "man" }';
参考:
https://segmentfault.com/a/1190000008785931