Javascript 笔记与总结(2-3)Javascript 运算符、控制结构与对象操作

连接运算符 + 】

<script>
console.log(1+2+‘a‘+3+4);
</script>

输出:

3a34

逻辑运算符】返回的是最早能判断表达式结果的那个值

例①

<script>
var a = false;
var b = 10;
var c = true;
var d = a || b || c;
console.log(d);
console.log(typeof(d));
</script>

输出:

10

number

例②

<script>
var a = true;
var b = false;
var c = a && b;
console.log(c);
console.log(typeof(c));
</script>

输出:

false

boolean

例③(&& 优先级高于 ||)

<script>
var a = true;
var b = 10;
var c = false;
var d = a || b && c;
console.log(d);
console.log(typeof(d));
</script>

输出:

true

boolean

在一些框架中经常利用 || 来做浏览器的兼容,形式:window.a = window.a || window.b

遍历数组

<script>
var arr = [‘hello‘, ‘world‘, 2015];
for(var i=0; i<arr.length; i++){
    console.log(arr[i]);
}
</script>

输出:

hello

world

2015

遍历对象

<script>
var obj = {a:‘hello‘, b:‘world‘, c:2015};
for(var key in obj){
    console.log(key+":"+obj[key]);
}
</script>

输出:

a:hello

b:world

c:2015

对象操作

在用数字、字符串等原生类型调用属性的时候,js 会瞬间把这些原生类型包装成对象

例 ①

<script>
var str = "helloworld";
console.log(str.length);
</script>

输出 10

例 ②

<script>
var str = "helloworld";
console.log(str.substr(2,3));
</script>

输出:llo

例 ③

<script>
var arr = [‘阿森纳‘, ‘切尔西‘, ‘曼城‘, ‘利物浦‘];
console.log(arr.join(‘,‘))

var str = "php,java,python";
console.log(str.split(‘,‘));
</script>

输出:

阿森纳,切尔西,曼城,利物浦

["php", "java", "python"]

时间: 2024-10-25 16:21:36

Javascript 笔记与总结(2-3)Javascript 运算符、控制结构与对象操作的相关文章

[Effective JavaScript 笔记] 第4条:原始类型优于封闭对象

js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //"number" typeof "s";//"string" typeof null;//"object":ECMAScript把null描述为独特的类型,但返回值却是对象类型,有点困惑. 可以使用Object.prototype.t

[Effective JavaScript 笔记]第24条:使用变量保存arguments对象

迭代器(iterator)是一个可以顺序存取数据集合的对象.其一个典型的API是next方法.该方法获得序列中的下一个值. 迭代器示例 题目:希望编写一个便利的函数,它可以接收任意数量的参数,并为这些值建立一个迭代器. 测试代码好下: var it=values(1,4,1,4,2,1,3,5,6); it.next();//1 it.next();//4 it.next();//1 分析:由于values函数需要接收任意多个参数,这里就需要用到上一节讲到的构建可变参数的函数的方法.然后里面的迭

[Effective JavaScript 笔记]第23条:永远不要修改arguments对象

arguments对象并不是标准的Array类型的实例.arguments对象不能直接调用Array方法. arguments对象的救星call方法 使得arguments可以品尝到数组方法的美味,知道可以吃,下面就是怎么吃的问题了.不管怎么吃,先吃一口试试. function callMethod(obj,method){ var shift=[].shift; shift.call(arguments); shift.call(arguments); return obj[method].a

[Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法

js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+1}" 反射获取函数源代码的功能很强大,使用函数对象的toString方法有严重的局限性.toString方法的局限性ECMAScript标准对函数对象的toString方法的返回结果(即该字符串)并没有任何要求.这意味着不同的js引擎将产生不同的字符串,甚至产生的字符串与该函数并不相关. 如果函数

JavaScript笔记之Function

一.函数定义 (1)使用function declaration 格式:function functionName(parameters) { function body } 注:此种方式声明的函数作用域是全局的,即在声明之前可以调用 (2)使用function expression 格式:var name = function (parameters) { function body }; 注:与(1)不同,在声明之前不可以调用 (3)使用function constructor() 格式:v

javascript笔记(二)

concat() 连接多个字符串,返回合并后的字符串. 1 var s1="a"; 2 var s2="b"; 3 var s3="c"; 4 5 console.log(s1.concat(s2,s3));//abc concat() 方法的结果等同于:result = s1 + s2 + ... + sN.如果有不是字符串的参数,则它们在连接之前将首先被转换为字符串. 数组中的concat():将参数添加为数组的元素,返回新的数组. 1 va

DOM笔记(十三):JavaScript的继承方式

在Java.C++.C#等OO语言中,都支持两种继承方式:接口继承和实现继承.接口继承制继承方法签名,实现继承则继承实际的方法和属性.在SCMAScript中,由于函数没有签名,所以无法实现接口继承,只支持实现继承. 实现继承主要依靠原型链来实现. 一.原型链 原型链是利用原型让一个引用类型继承另一个引用类型的方法,在DOM笔记(十二):又谈原型对象中,描述了构造函数.实例和原型之间的关系: 每个构造函数都有一个原型对象,原型对象包含一个指向构造函数的指针,而每个实例都包含一个指向原型对象的内部

JavaScript 笔记(2) -- 类型转换 &amp; 正则表达 &amp; 变量提升 &amp; 表单验证

目录:  typeof, null, undefined, valueOf() 类型转换 正则表达式 错误: try, catch, throw 调试工具 变量提升 strict 严格模式 使用误区 表单 & 表单验证 JavaScript void typeof, null, undefined, valueOf() typeof:用于检测变量的数据类型,eg: typeof "John"; // 返回 string 在 JavaScript 中有 5 种不同的数据类型:st

[Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码

函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式传递给eval函数以达到同样的功能.程序员面临一个选择:应该将代码表示为函数还是字符串?毫无疑问,应该将代码表示为函数.字符串表示代码不够灵活的一个重要原因是:它们不是闭包. 闭包回顾 看下面这个图 js的函数值包含了比调用它们时执行所需要的代码还要多的信息.而且js函数值还在内部存储它们可能会引用