经典题目总结
1. var i; alert(i); // undefined 只声明了但是没定义
2. var i; i--; alert(i); // NaN i--运算自动将 i 转化成了数字类型,但是 i 没有初值,所以说它不是一个合法的数字
3. 关于作用域——找变量的时候会先在最近的作用域里找!!
var x=1;
function print(){
alert(x); // undefined 先在本层作用域找x,找到了,但是还没执行初始化,所以是未定义。若没有下面的代码,则弹出1。
var x = 'hello world';
alert(x); // hello world 找到了。
}
print();
4. 关于作用域——在哪里定义的函数,哪里就是他最近的作用域,不要看他是在哪里被调用的。
var name = 'a';
function first(){
alert(name);
}
function second(){
var name = 'b';
first(); //这里只是调用first,first的声明依然属于window,所以window就是first最近的作用域。如果将first定义在second中,则弹出 b。
}
second(); // 弹出 a。
5. 关于执行顺序——计算机总是俩俩计算的,先把算出来的确定一下类型,然后再执行下面的计算。
function show(i){
alert(2<i<3); // 先执行2< i 的比较,为false,然后false相当于0,则比较0<3,为真,弹出true
}
show(1); // 弹出true
6. 一个简单的Ajax练习 从http://a.com/test.php 请求到一段数据如下:{"name":'bbb'},并将其以<a href="###">bbb</a>的格式显示到<div id='test'></div>中
<script type="text/javascript" src="jQuery.js"></script>
function request(){
$.ajax({
url:"http://a.com/test.php",
data:"word="+word,
type:"get",
success:function(data){
var temp = JSON.parse(data); // 或者 temp = eval('('+data+')');
var tempHTML = "<a href='###'>"+ temp.name +"</a>";
var testdiv.append(tempHTML);
}
});
}
7. a==b只判断值
a===b还会判断类型等等所有方面
8. 字符串转数字
parseInt(),parseFloat(),Number(),'5'-0;