js组成
- js语法,
- dom页面文档对象类型,
- bom浏览器对象模型
书写位置 和 注释
- 行内(元素内,以on开头的属性)
- 内嵌<script type="text/JavaScript"></script>
- 外部<script type="text/JavaScript" src="my.js"></script>
js推荐使用单引号
注释//或者/*多行*/
输出
- 使用 window.alert() 或alert()弹出警告框。
- 使用 document.write() 方法将内容写到 HTML 文档中。
- 使用 innerHTML 写入到 HTML 元素。
- 使用 console.log() 写入到浏览器的控制台。
变量
- var num;
- var num=1;
- var num=prompt('请输入数字');
数据类型
- 简单:
- number
- boolean
- string
- undefined
- null
复杂:object
类型判断
isNaN(a) 判断非数字 false为数字 true为非数字
字符串长度
字符串.length 获取字符串长度
字符串拼接用加号拼接 str1+str2
获取数据类型typeof(a)
类型转换
str=num.toString();
str=String(num);num=parseInt(string)//转为整型
num=parseFloat(strig);//转为浮点型
num=number(string);//强制转换
隐式转换 减号'12'-'1' 乘号'12'*'12'Boolean(),转为bool型,'',0,NaN,null,undefined,会被转为false,其他的都是true
数组
var cars=new Array();
var cars2=new Array("Saab","Volvo","BMW");
var cars=[];
var cars=['123',1,2,true];
cars[0]="Saab";cars[1]="Volvo";cars[2]="BMW";
array.length获取数组长度
新增数组元素,
- 修改长度array.length=5;
- 通过修改所以号,如数组长为3,array[3]=“1”;array[4]=“2”;
对象
对象由花括号分隔。
在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。
属性由逗号分隔。var person={ firstname:"John", ff:function(){} }; name=person.lastname; name=person["lastname"]; for(var k in obj) { //k,键 } //obj[k],键值
内置对象
Math
Date
Array
String
常见语法
条件语句
if(condition){}else{} if(condition1){} else if(condition2){} else{}
三元表达式, 条件表达式?真执:假执
switch() { case 1: break; default: }
循环语句
for(var i=0;i<5;i++){}
while(i<5){}
do{}while(i<5)
break 语句可用于跳出循环。
continue 语句跳出循环后,会继续执行该循环之后的代码(如果有的话):
函数定义function 函数名(形参1,形参2){ return 结果; } function 函数名(){ 用arguments查看所有输入的参数。 } var fun =function(形参){} fun(实参); function(){}立即执行函数
JS Json
JSON简介
json( JavaScript Object Notation) ,它是一串字符串 只不过元素会使用特定的符号标注。
- {} 双括号表示对象
- [] 中括号表示数组
- "" 双引号内是属性或值
- : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
JSON 语法是 JavaScript 对象表示法语法的子集。
数据在名称/值对中、数据由逗号分隔、花括号保存对象、方括号保存数组
JSON 值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在方括号中)、对象(在花括号中)、null所以 {"name": "Michael"} 可以理解为是一个包含name为Michael的对象
JS对象/数组/对象数组转JSON
var str=JSON.stringify(obj);
或者JSON.stringify(obj);
例子
var json = {"name":"iphone","price":666}; //创建对象;
var jsonStr = JSON.stringify(json); //转为JSON字符串
console.log(jsonStr);
JSON转JS对象/数组/对象数组
var jsarr=JSON.parse( jsonStr );
例如
var jsonStr = '[1,2,3,{"a":1}]';
var jsarr=JSON.parse( jsonStr );
Ajax
function ajax(options){ //创建一个ajax对象 var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft,XMLHTTP"); //数据的处理 {a:1,b:2} a=1&b=2; var str = ""; for(var key in options.data){ str+="&"+key+"="+options.data[key]; } str = str.slice(1) if(options.type == "get"){ var url = options.url+"?"+str; xhr.open("get",url); xhr.send(); }else if(options.type == "post"){ xhr.open("post",options.url); xhr.setRequestHeader("content-type","application/x-www-form-urlencoded"); xhr.send(str) } //监听 xhr.onreadystatechange = function(){ //当请求成功的时候 if(xhr.readyState == 4 && xhr.status == 200){ var d = xhr.responseText; //将请求的数据传递给成功回调函数 options.success&&options.success(d) }else if(xhr.status != 200){ //当失败的时候将服务器的状态传递给失败的回调函数 options.error&&options.error(xhr.status); } } }
//例子 ajax({ type:"post", url:"http://localhost/test/index.php", data:{"name":"ypc","id":"123","age":"12"}, success:function(data){ // console.log(data) alert('yes'); } })
//php端post范例 <?php header('Access-Control-Allow-Origin: *');//对于post协议必须要加 $arr = [ array('id'=>1,'title'=>'one1'), array('id'=>2,'title'=>'one2'), array('id'=>3,'title'=>'one3'), array('id'=>4,'title'=>'one4'), array('id'=>$_POST['id'],'title'=>$_POST['name']), array('id'=>$_POST['age'],'title'=>$_POST['name']), ]; echo json_encode($arr); ?>