· 对一个数进行开方: var result = Math.sqrt();
console.time ("test");for (var i=2; i<=100; i++) {var flag = true;for (var j=2; j<=Math.sqrt(i); j++) {if (i%j == 0) {//如果进入判断则证明 i 不是质数,修改 flag 值为 falseflag = false;//不是质数,则没有必要继续循环break;}}//如果是质数,则打印 i 的值if (flag) {console.log(i);}}console.timeEnd ("test");
· 基本数据类型都是单一的值,值和值之间没有任何联系。如果使用基本数据类型的数据,所创建的变量都是独立的,不能成为一个整体。
· Object 对象:属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。分类:
1. 内建对象:由 ES 标准定义的对象,在任何 ES 的实现中都可以使用。e.g.: Math, String, Number, Function.
2. 宿主对象:由 JS 的运行环境提供的对象,目前主要指有浏览器提供的对象。e.g. BOM, DOM.
3. 自定义对象:由开发人员自己创建的对象。
· 创建对象: var obj = new Object (); 使用 new 关键字调用的函数,是构造函数 constructor ,构造函数是专门用来创建对象的函数。
· 向对象中添加属性(对象中保存的值叫做属性):语法:对象。属性名 = 属性值;
例:向 obj 添加一个 name 属性:obj.name = "孙悟空";
· 读取对象中的属性:语法:对象。属性名
例:console.log (obj.gender);
· 如果读取对象中没有的属性,不会报错而是会返回 undefined 。
· 修改属性值:语法: 对象。属性名= 新值
例: obj.name = "Tom";
· 删除对象的属性:语法:delete 对象。属性名
例: delete obj.name;
~ 属性名: 对象的属性名不强制要求遵守标识符的规范。但尽量按标识符的规范去做。如果使用特殊的属性名,不能采用“.”的方式操作。用另一种方式:语法:对象["属性名"] = 属性值。
例:obj.var = "hello"; 例:obj["123"] = 789; console.log (obj["123"]);
~ 使用 [ ] 这种形式去操作属性,更加灵活。[ ] 中可以直接传递一个变量,这样变量值是多少就会读取那个属性。
例:obj["123"] = 789; var n = "123"; 可以直接写 console.log ([n]);
~ 属性值: JS 对象的属性值可以是任意的数据类型,也可以是一个对象。
例:obj.test = true; 例:var obj2 = new Object (); obj2.name = "猪八戒"; oobj.test = obj2; 可以直接 console.log (obj.tesst.name);
~ console.log (obj. test2); 没有的属性返回值为 undefined 。
~ in 运算符:检查一个对象中是否含有指定的属性。有则返回 true ,没有则返回 false 。语法:"属性名" in 对象。
例:console.log ("test2" in obj);
~ 引用数据类型:Object 。
~ JS 中的变量都是保存到栈内存中的。基本数据类型的值在栈内存中存储,值与与值之间没有联系,修改一个变量不会影响另一个变量。对像是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟一个新的空间。
~ 比较两个引用数据类型时,比较的是对象的内存地址。
~ 对象字面量:可以创建一个对象,创建对象时,可直接指定对象中的属性,属性名可加引号也可不加,特殊名字必须加。 var obj = {属性名:属性值,属性名:属性值。。。};