js基础篇

1. js可以在html里面或者单独.js文件,src=foo.js
2.<script>标签里面如果需要使用html标签,需要放在docment.write('<table>');
3.var定义的是局部变量,没有定义的是全局
4.类型
  String
  Number
  Boolean
  Undefined:未赋值
  Null:nil
  Object:对象类型
  <script language='javascript'>
    var name='张三';
// 需要使用document
    document.write('<ol>');
    document.write('<li>'+name+'<li>');
    document.write('<ol>');
  </script>
5.对象
  function person(){};
  var p1 = new person();
  p1.name = 'lisi';
  p1.age = 20;
  document.write(p1.name+'<br>');
6.运算符
  ==(值是否相等) ===(全等于,值相等,类型也相同)
  var j=5;
  var k="5";
  j==k
  j!==k
7.字符串运算符
 +,(字符串连接)+=,
8.js为解释语言,所以有顺序结构
<script>
  var n = Math.round(Math.random()*500);
  while(true) {
  var number= prompt('请输入一个0到500的数字');
  if (number>n) 
     alert('大了');
  else if (number<n) 
    alert('小了');
  else if (number==n) {
    alert('答对了---');
    break;
  }
}
</script>


9.函数
<script>
   function display() {
   alert("hello");
   function fn1() {  // 函数可以嵌套
  alert("world");
   }
}
display();
</script>
9.1关于匿名函数
<script language="javascript">
var i =10; // 实际上是存储在 window.i
alert(i);
var j=function display() {
alert("hello");
}
// var j = function {
// alert("hello");
//}
i=display; // 都是变量,所以可以这样使用
i();
j();
(function(){})(); // 函数自调用,首地址被调用,可以避免代码库中的函数又重命名,以上代码只执行一次
// (function(){}) 可以表示函数的首地址
(function(first) {
  alert(first);
})(10)
</script>
10.变量 需要先声明再使用
<script language="javascript">
   var i=10;  // 全局
   j=10;  // 全局
   function() {
  var k=10, j=11;  // 局部,j也是局部的
  var m=n=1;  // m为局部,m为全局
  p=10;  // 全局,没有var定义的变量,向上查找该变量的声明(var),如果一直没有查找到,会在全局声明该变量
   }
   // js中没有默认参数,如果没有定义参数,所有形参自动存放到argument这个属性数组中
   function display() {
  for (var i=0; i<arguments.length; i++) {
  document.write(arguments[i]+"<br>");
  }   
   }
   display("lili", "neil", "lili")
</script>


11.词法分析
  // js执行是分段的,顺序一下
a读入第一个代码段
b编译
声明变量,声明函数,语法检查,语义检查,代码优化,分析并得到代码树
// 比如 var i=10; 编译的时候只做了var i;
c执行
// 做了如下:i=10;
d读入下一个代码段
e编译
f执行
g...
h结束
// 编译性错误会导致一段代码都不能执行,但是不影响其他段代码


<script>
  alert(i);   // 未声明运行错误,后面代码只能是之前编译了,不能运行,也就是声明有效,赋值无效
  var first=10;
  function display() {
 alert("hello");
  }
  // alert(i; 如果代码段中有编译错误,段内所有声明无效
</script>
<script>
  alert(first);  // undefined, 由于上段运行错误,导致first只声明,未能赋值
  display();
</script>
'use strict' // 严格模式
12.数组
 数组是类Array的实例对象
 无需定义数组类型
 无需定义数组长度
 数组可以存储任何类型的数据,同一个数组不用数据类型一致
 支持带有文本下表的数组,但是需要先创建再使用文本下表
 <script>
var array1=[1,2,3]; // [] === new array();
                   // {} === new Object();
// // === new RegExp(); 正则对象
array1["first"]="neil";
array1["second"]="hzx";
array1.length; // 文本下表不计入数组长度,是以属性加入数组可以通过array1.first
document.write(array1[2]+'<br>');
for(var i in array1) {  // 可以遍历first和second,但是不能通过length来获取
document.write(i+"<br>");
}
// var array2 = new Array(1,2,3);
// var array =new Array(size); 有一个整形,表示长度
 </script>
 // var array = new 
 属性有
 length
 众多属性和函数可以参考相关文档
 13.二维数组
 <script>
var arr=[
[10,'neil','man'],
[11,'lily','female'],
[13,'bingbing','female']];
for (var i in arr) {
for (var j in arr[i]) {
document.write(arr[i][j]+'<br>');
}
}
 </script>
 
 <html charset=gbk>
<head>
<script>
var cit1 = ['请选择','bj','shanghai','天津','广东'];
var cit2 = [
[],
['海淀','朝阳','东城'],
['奉贤','虹桥','浦东'],
['天津卫','南开','塘沽'],
['广州','深圳'],
]
window.οnlοad=function() {
createCity1();
document.getElementById('city1').onchange = createCity2;
};
function createCity1() {
var city1 = document.getElementById('city1');
for (var i in cit1) {
var op = new Option(cit1[i], cit1[i]);
// <option value=1>北京</option>
city1.options.add(op);
}
}
function createCity2() {
var index = document.getElementById('city1').selectedIndex;
// alert(index);
var city2 = document.getElementById('city2');
city2.options.length = 0;
for (var i in cit2[index]) {
var op = new Option(cit2[index][i], cit2[index][i]);
city2.options.add(op);
}
}
</script>
</head>
<body>
<select id='city1'></select>

<select id='city2'></select>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值