js
跳转页面
- 当前页面打开: window.location.href="http://www.qq.com";
- 在新窗口打开窗口 :window.open("http://www.qq.com");
命名规范
和java一样,小驼峰
数据类型
-
typeof运算符:检测是什么类型
5种数据类型 -
字符串
parseInt(s);// 字符转数字
paseFloat(s);// 字符转浮点 -
数值型 number
强制类型转换
Number(s); -
布尔值(5种情况为false)
Number:非0的数,值为true,负数也是true,0和NaN为“false"
String:非空字符串为:true,""为false;
换多行:飘号,tab 和esc中间的符号
![image]()
Object对象,非null:true;
总结:不为null,0,NaN,undefined,都是true -
对象 object
-
数组
数组也是对象,数组里可以放表达式,函数、日期。 -
null Undefined
-
函数 function
JSON不能存储Date对象。
通过转换为字符串,再将字符串转化为Date对象。
数组遍历
fori
for(var i = 0;i<arr.length;i++)
for in (num是索引)
var ages = [2,5,7];
for(var num in ages){
console.log(age[num]);
}
// v是元素
arr.forEach(function(v){console.log(v)});
// v是元素
for(var v of set){
console.log(v);
}
json对象格式
标准格式,:左边用引号
var obj = {
'name':'hello',
'age':20
}
字符和json对象转化
对象(数组)转字符串:
JSON.stringify(obj);
Json字符串,数组互转
// json字符转,数组
arr = JSON.parse(str)
等待2秒执行
点击查看代码
setTimeout( function(){
$('#editForm .easyui-combobox').combobox('readonly',true);
$('#editForm .easyui-textbox').textbox('readonly',true);
}, 2 * 1000 );

断点
| f11 | 进入函数 |
|---|---|
| f10 | 往下执行一行 |
| f8 | 走到下一个断点 |
| debugger | 代码的断点 |
| ctrl+shift+F11 | 返回上一个断点,好像只能返回一次 |
函数
函数没有返回值, 通过var 变量接收了,结果就是undefined;
变量声明了,没有赋值,结果还是undefined;
js return语句,后面还可以写代码,虽然不会执行,也不会报错,注意和java的区别;
函数定义方式
点击查看代码
// 匿名函数
var x = function (a,b) {
return a*b
}
var z = x(3,3);
// 构造函数
var fn = new Function('a','b','return a*4')//字符串自动解析为表达式返回结果
// 匿名函数表达式,
// 缺点:
// 1:匿名函数在栈追踪中,不会显示出有意义的函数名,debug很困难.
// 2:如果没有函数名,当函数需要引用自身时只能使用已经过期的arguments.callee引用,比如递归中,另一个函数需要引用自身的例子,事件触发后事件监听器需要解绑自身;
// 3:匿名函数省略了对代码可读性/可理解性,很重要的函数名,一个描述性的名称可以让代码不言自明;
语法:
(function(){
var a=3;
console.log(a);
})();
变量作用域
变量
- 全局变量:
使用var 声明的变量, 都是全局变量,(除了在函数中)。
带 var的全局变量,不会被删除. - 局部变量
除了定义在函数以内,用 var 声明的变量。 - 隐式全局变量
不管定义在哪里,只要不用 var 声明, 就都是隐式全局变量, 可以用delete删除. - 全局和局部的注意点
全局变量释放内存的周期更长,更消耗内存,所以尽量多用局部变量,全局变量一般用var,防止被删除。
作用域
- 全局作用域
- 局部作用域
- 块级作用域(ES6后)
严格模式
严格模式通过在脚本或函数的头部添加 "use strict"; 表达式来声明。
严格模式下你不能使用未声明的变量,必须用var申明变量。
严格模式下不能用保留关键字。
"use strict" 指令只允许出现在脚本或函数的开头。
禁止自定义的函数的this指向window;
对象不能有重名的属性;
ajax跨域
要想在服务器端设置,cookie,ajax跨域可以接收?
- 1:SpringBoot才支持,老Spring不支持!
- 2:需要满足相同域名,或同一个顶级域名!
ajax,跨域带上cookie,要保证顶级域名相同: .jd.com

中文转码
// 转回中文
decodeURI("%E4%BD%A0%E5%A5%BD");
// 中文转码
encodeURI("你好")
异常
js也有java的,throw和try


浙公网安备 33010602011771号