记录一些javascript的基础知识。只是一起走过一段路而已,何必把怀念弄的比经过还长。

javascript的基础

一、在检测一个引用类型值和 Object 构造函数时, instanceof 操作符始终会返回 true 。

var str1 = "huhx";
var str2 = new String("huhx");
console.log(str1 instanceof Object); // false
console.log(str2 instanceof Object); // true

二、js中没有块级作用域,定义在块中的变量是全局变量。

if (true) {
var color = "blue";
}
console.log(color); // blue

三、js中创建对象的方式:

  • 使用 new 操作符后跟 Object 构造函数:
var person = new Object();
person.name = "Nicholas";
person.age = 29;
  • 使用对象字面量表示法:
var person = {
name : "Nicholas",
age : 29
};

四、js中访问对象的属性:

var person = {
name: "huhx",
age: 56
}
var varName = "name";
console.log(person.name); // huhx
console.log(person[varName]); // huhx

五、

js中Arrays的学习

一、创建数组的几种方式:

  • 使用 Array 构造函数:
var colors = new Array();
var colors = new Array(20);
var colors = new Array("red", "blue", "green");
  • 使用数组字面量表示法:
var colors = ["red", "blue", "green"];

二、检测数组:

var arrays = ["huhx", 45, true];
console.log(arrays instanceof Array); // true
console.log(Array.isArray(arrays)); // true

三、使用 join() 方法,则可以使用不同的分隔符来构建这个字符串。

console.log(arrays.toString()); // huhx,45,true
console.log(arrays.join("|")); // huhx|45|true

四、数组的栈方法:

var user = new Array("test");
var number = user.push("huhx", "linux");
console.log(number); //
console.log(user); // ["test", "huhx", "linux"]
var item = user.pop();
console.log(item); // linux
console.log(user); // ["test", "huhx"]

push()  将两个字符串推入数组的末尾,并将返回的结果保存在变量number中。在调用 pop() 时,它会返回数组的最后一项。

五、数组的队列方法:

  • shift() 方法能够移除数组中的第一个项并返回该项,同时将数组长度减 1:
var loves = ["chenhui", "huhx", 5];
var item = loves.shift();
console.log(item); // chenhui
console.log(loves); // ["huhx", 5]
  • unshift()方法能在数组前端添加任意个项并返回新数组的长度。
var loves = ["chenhui", "huhx", 5];
var count = loves.unshift("linux", true);
console.log(count); //
console.log(loves); // ["linux", true, "chenhui", "huhx", 5]

六、数组的重排序方法:

  • reverse() 方法会反转数组项的顺序:
var values = [1, 2, 3, 4, 5];
values.reverse();
console.log(values); // [5, 4, 3, 2, 1]
  • sort() 方法按升序排列数组项:
var values = [0, 1, 5, 10, 15];
values.sort();
console.log(values); // [0, 1, 10, 15, 5]
  • 可以将一个比较函数传递级sort方法:
function compare(value1, value2){
return value2 - value1;
}
var values = [0, 1, 5, 10, 15];
values.sort(compare);
console.log(values); // [15, 10, 5, 1, 0]

七、数组的一些操作方法:

  • 如果传递给 concat() 方法的是一或多个数组,则该方法会将这些数组中的每一项都添加到结果数组中。
var colors = ["red", "green", "blue"];
var colors2 = colors.concat("yellow", ["black", "brown"]);
console.log(colors); // ["red", "green", "blue"]
console.log(colors2); // ["red", "green", "blue", "yellow", "black", "brown"]
  • slice() 方法可以接受一或两个参数,即要返回项的起始和结束位置。
var colors = ["red", "green", "blue", "yellow", "purple"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1,4);
console.log(colors2); // ["green", "blue", "yellow", "purple"]
console.log(colors3); // ["green", "blue", "yellow"]

八、splice中第一个参数是删除的位置,第二个参数是删除的数量,后续的是插入的数据并且起点是第一个参数。

var colors = ["red", "green", "blue"];
var removed = colors.splice(0, 1); // 删除第一项
console.log(colors); // green,blue
console.log(removed); // red,返回的数组中只包含一项
removed = colors.splice(1, 0, "yellow", "orange"); // 从位置 1 开始插入两项
console.log(colors); // green,yellow,orange,blue
console.log(removed); // 返回的是一个空数组
removed = colors.splice(1, 1, "red", "purple"); // 插入两项,删除一项
console.log(colors); // green,red,purple,orange,blue
console.log(removed); // yellow,返回的数组中只包含一项

九、数组的位置方法:

  • indexOf() 和 lastIndexOf() 。这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; // 查找4的位置
console.log(numbers.indexOf(4)); //
console.log(numbers.lastIndexOf(4)); //

十、数组的迭代方法:

  • every() :对数组中的每一项运行给定函数,如果该函数对每一项都返回 true ,则返回 true 。
  • filter() :对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。
  • forEach() :对数组中的每一项运行给定函数。这个方法没有返回值。
  • map() :对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
  • some() :对数组中的每一项运行给定函数,如果该函数对任一项返回 true ,则返回 true 。
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var everyResult = numbers.every(function(item, index, array) {
return (item > 2);
});
console.log(everyResult); // false
var someResult = numbers.some(function(item, index, array) {
return (item > 2);
});
console.log(someResult); // true

filter函数的使用:

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var filterResult = numbers.filter(function(item, index, array) {
return (item > 2);
});
console.log(filterResult); // [3,4,5,4,3

map() 也返回一个数组,而这个数组的每一项都是在原始数组中的对应项上运行传入函数的结果。

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var mapResult = numbers.map(function(item, index, array) {
return item * 2;
});
console.log(mapResult); // [2,4,6,8,10,8,6,4,2]

js中Date的一些使用

一、时间Date的创建:

var now = new Date(); // 本地的当前时间
var adate = new Date(2005, 4, 5, 17, 55, 55); // 本地时间 2005 年 5 月 5 日下午 5:55:55

二、时间的比较先后以及间隔:

var date1 = new Date(2007, 0, 1);
var date2 = new Date(2007, 1, 1);
console.log(date1 < date2); // true
console.log(date2 - date1); // 31天的毫秒表示:2678400000

三、时间的一些取值操作:

console.log(now.getDate()); // 15(15日)
console.log(now.getMonth()); // 10(11月份)
console.log(now.getDay()); // 2(星期二)
console.log(now.getFullYear()); // 2016(2016年)

js中RegExp的使用

一、RegExp 的每个实例都具有下列属性:

global :布尔值,表示是否设置了 g 标志。
ignoreCase :布尔值,表示是否设置了 i 标志。
lastIndex :整数,表示开始搜索下一个匹配项的字符位置,从 0 算起。
multiline :布尔值,表示是否设置了 m 标志。
source :正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。

二、RegExp对象的创建:

var pattern1 = /[bc]at/i;
var pattern2 = new RegExp("[bc]at", "i");

三、RegExp对象的一些方法:

  • exec() 接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组
var text = "mom and dad and baby";
var pattern = /mom( and dad( and baby)?)?/gi;
var matches = pattern.exec(text);
console.log(matches.index); //
console.log(matches.input); // "mom and dad and baby"
console.log(matches[0]); // "mom and dad and baby"
console.log(matches[1]); // " and dad and baby"
console.log(matches[2]); // " and baby
  • test() ,它接受一个字符串参数。在模式与该参数匹配的情况下返回true ;否则,返回 false 。
var text = "000-00-0000";
var pattern = /\d{3}-\d{2}-\d{4}/;
console.log(pattern.test(text)); // true

js中函数的使用

一、js中函数的创建:解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问);至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解释执行。

  • 函数声明语法定义:
function sum (num1, num2) {
return num1 + num2;
}
  • 函数表达式定义函数:
var sum = function(num1, num2){
return num1 + num2;
}

二、在函数内部,有两个特殊的对象: arguments 和 this:

function sum(num1, num2) {
return num1 + num2;
} function applysum1(num1, num2) {
return sum.apply(this, arguments); // 传入 arguments 对象
} function applysum2(num1, num2) {
return sum.apply(this, [num1, num2]); // 传入数组
} function callsum(num1, num2) {
return sum.call(this, num1, num2);
}
console.log(applysum1(10, 10)); //
console.log(applysum2(10, 10)); //
console.log(callsum(10, 20)); //

友情链接

JS基础---->javascript的基础(一)的更多相关文章

  1. JavaScript基础——JavaScript语法基础(笔记)

    JavaScript语法基础(笔记) 1.语言编码 JavaScript语言建立在Unicode字符集基础之上,因此脚本中,用户可以使用双字节的字符命名常量.变量或函数等. [示例] var 我=&q ...

  2. JS基础---->javascript的基础(二)

    记载javascript的一些基础的知识.我们在春风秋雨中无话不说,又在春去秋来中失去了联系. js中string类型 一.字符方法:charAt() 和 charCodeAt() var strin ...

  3. js基础--javaScript数据类型你都弄明白了吗?绝对干货

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 数据类型的分类 JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型. 基本数据类型:Null.Undefine ...

  4. 新手怎么学JS?JavaScript基础入门

    新手应该怎么学习JS?JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写Ja ...

  5. JavaScript RegExp 基础详谈

    前言: 正则对于一个码农来说是最基础的了,而且在博客园中,发表关于讲解正则表达式的技术文章,更是数不胜数,各有各的优点,但是就是这种很基础的东西,如果我们不去真正仔细研究.学习.掌握,而是抱着需要的时 ...

  6. Javascript运动基础

    javascript的运动非常实用,通过控制需要运动块的实际距离与要到达的距离的关系,结合定时器来控制小方块的各种运动. 运动框架 <!DOCTYPE html><html>& ...

  7. JavaScript学习基础部分

    JavaScript学习基础 一.简介 1.JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比方说 Internet Explorer. Mozilla.Firefo ...

  8. JavaScript:基础表单验证

    在用户填写表单的过程之中,往往需要编写一堆的验证操作,这样就可以保证提交的数据时正确的.那么下面就模拟表单验证的处理操作完成. 如果要想进行验证,首先针对于输入的数据来进行一个验证处理. 1.定义一个 ...

  9. JavaScript编程:javaScript核心基础语法

    1.javaScript核心基础语法: javaScript技术体系包含了5个内容:          1.核心语言定义:          2.原生对象和雷子对象:          3.浏览器对象 ...

随机推荐

  1. (实用)Ubuntu 开启NFS服务

    本文介绍如何在Ubuntu下开启NFS文件系统,从而挂载网络上其他机器的文件系统. NFS, Network File System, 即网络文件系统,通常NFS有提供者和使用者,提供者export自 ...

  2. Dockerfile 常用指令

    下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是任意字符串. COPY将文件从 build ...

  3. 解决 PathVariable annotation was empty on param 0.

    今天在写网关关于远程调用Feign的时候报的一个错误,PathVariable注解为空.仔细看了一下代码发现问题出在用@PathVariable注解的时候 @PathVariable Integer ...

  4. 带有Header的SOAP 请求

    package demo.test; import javax.xml.bind.JAXBElement; import javax.xml.namespace.QName; import org.t ...

  5. 浏览器兼容css

    原文:https://www.cnblogs.com/shizk/p/8459362.html 1.为什么会出现浏览器兼容问题? 由于各大主流浏览器由不同的厂家开发,所用的核心架构和代码也很难重和,这 ...

  6. bash: /usr/bin/npm: No such file or directory

    一个整得很烂了的Ubuntu服务器, 各种问题乱出. npm老是升不到最新版(一直显示1.4),于是我干脆删了, 结果再去装却装不上了, 如果用apt-get install npm安装, 就得到如下 ...

  7. koa2使用注意点总结

    post请求,ajax传入的参数获取的时候为ctx.request.body get请求,ajax传入参数获取的时候为ctx.request.query.参数名 koa-csrf可以设置什么请求的时候 ...

  8. Lambda表达式树解析(下)包含自定义的provider和查询

    概述 前面章节,总结了Lambda树的构建,那么怎么解析Lambda表达式树那?Lambda表达式是一种委托构造而成,如果能够清晰的解析Lambda表达式树,那么就能够理解Lambda表达式要传递的正 ...

  9. 基于bootstrap-multiselect.js的下拉框联动

    背景:当option特别多时,一般的下拉框选择起来就有点力不从心了,所以使用multiselect是个很好的选择,可以通过输入文字来选择选项很方便,但是有一个需要下拉框联动,网上找了半天才找到解决方法 ...

  10. 找不到 android-support-v4 解决办法

    Project->properties->Java Build Path->Libraries->Add External Jars中加入sdk目录下的extras/andro ...