JS
- 四舍五入 Math.round(num)
- JSON 数据格式 可以是数组[ {“key” : “value”}] || 可以是对象{“obj”: “value”} || 多个以逗号分隔
- ES6 function *函数名(){ }返回的是一个迭代器 为Generator function;
function *gen(){ y 1; y 2; y 3; //返回Generator 对象 }
jquery 中实现远程 http get请求 事件是 :$.get(url);
- $.ajax(opt)通过http请求远程加载数据 opt:一般为JSON格式 常见参数为 data type url async
- load(url) :方法是从服务器加载数据,并把返回的数据放入被选数据中 $(selector).load(url,data,callback); url 希望加载的url(必选),data(和请求一致发送的查询字符串键/值对集合)
- callback(是load()执行完后调用的回调函数)
- getScript()方法是通过HTTP GET 请求载入并执行JS文件 jQuery.getScript(url,success(response,status))
isNaN 是数值返回false ,不是返回true
- const 声明的是一个变量时不可改的,但是对象的属性还是可以变的
const G.a=7;console.log(G.a)//7;
G.a=8;console.log(G.a)//8
const A=7; a=9//TypeError - let[head,….tail]=[1,2,3,4] console.log(tail)//[2,3,4];//类似数据结构中的头和尾
- JS 定时器 setTimeout理解
function foo(){
cosole.log(“first”);
setTimeout(function(){
console.log(“second”)
},5);
}
for(var i=0;i<784544;;i++){
foo();
}
//输出结果:先全部输出first ,后输出second
//解析:Js是单线程的,定时器的作用是在规定时间内将事件加入队列,所以会提前先将队列之前的线程全部执行完才会执行定时器的事件 JS中数字类型的总结
- js中,是弱对象,没有强制类型,由于变量内容的不同,变量被分为基本数据类型和引用类型,基本类型变量用 8 byte 存储,存储引用类型变量只是保存引用变量对象,数组或者函数等引用类型的值得引用(内存地址)
- js中数字不分类型 ,所以都是 8 byte
JS异步编程的方法
- 回调函数
- 事件监听 (采用事件驱动方式)
- 发布,订阅模式
- Promises对象||是CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口
11.
<div id="info"><p>KKK</p><div>
console.log(document.getElementById(“info”).innerHTML)
//输出<p>KKk</p>
sessionStorage保存数据: sessionStorage.setItem(“键名”,”健值”)
Function.prototype.apply = function(testObj){
// this 指向 testObj
}
14 .浏览器利用JS 跨域的描述 :
- 域名domain,端口 prot ,协议 protocol 任何一个不同都不可以,(都会当做是不同的域)
- js支持JSONP进行跨域请求
- 通过document.domain 来跨子域
- 使用window.name来进行跨域
‘+ new Array(017)’ 输出 NaN ,分析: + 操作符 会将参数转化为数字返回,new Array(017) == new Array(15),所以是 先执行 valueOf 发现返回是自己,所以执行 toString 。 Number(new Array(15).toString()) //NaN
typeof 判断变量的类型,返回值是类型,instanceof 判断变量是否是某个对象的实例,返回值是true ||
false
下面那个语句可以在JS中判断一个 对象 OoStirng是否为String
typeof OoStirng ==”String” //wrong
typeof OoStirng ==”object” //right
OoStirng instanceof String //right
- 在原型上扩展的可枚举方法,会被for in 循环出来
- 使用 object .defineProperty 属性可以向对象添加或者修改属性,T.name=”GG”
- 每个对象都有 prototype 属性,返回对象类型原型的引用
- 原型 和原型链式JS实现继承的一种模型
- for 循环是按顺序的,for in 循环不一定按顺序(循环遍历对象的属性)使用for-in进行循环也被称为“枚举” 所以最好数组使用正常的for循环,对象使用for-in循环
hasOwnProperty 可以检查属性是否在对象上存在,不会检查原型链
开发中如何规避函数重名问题 :
1 . 根据不同的开发人员的实现功能,在函数名前面加前缀- 可以将自己的函数封装在一个类中,用 类. 函数名来调用
如何封装:
person 12345678910111213//共有的属性this .name="ZFF";this. age= 20;//共有的方法this.sayA= function(){this.age=this.age+2;}//私有的属性和方法,只能内部调用var Tea = "OO";function sayB(){}}