JS自学笔记05
JS自学笔记05
1、例题
产生随机的16进制颜色
function getColor(){
var str="#";
var arr=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];
for(var i=0;i<6;i++){
var num=parsenInt(Math.random()*16)
str+=arr[num];
}
return str;
}
2、Date
1)构造函数
var dt=new date();
console.log(dt);//将返回当前时间
//可传入时间
var dt=new date("2017-08-23");
var dt=Date.now();
//当前的毫秒数
2)部分常见方法请查阅手册
toDateString();//英文的格式
toLocalDateString();//数字格式
toTimeString();//小时分钟秒.
toLocalTimeString()
3)格式化日期并封装
function getDate(dt){
/**
*获取指定格式的时间
*@param dt 日期的对象
*@returns {string}返回的是字符串时间
*
*/
var year=dt.getFullYear();
var month=dt.getMonth();
var day=dt.getDate();
var hour=dt.getHour();
var min=dt.getMinutes();
var sec=dt.getSeconds();
return year+"年"+。。。
}
console.log(getDate(new Date()));
3、字符串
1)
string-字符串类型-基本类型
String-字符串类型-引用类型
js中不存在字符类型如char。字符串可以看作一个字符数组:
var str="hello";
for(var i=0;i<str.length;i++){
console.log(str[i]);
}
字符串具有不可变性,仅指值。不可通过索引修改
2)方法(变量名.)
.length 长度
.charAt(index) 从一个字符串中返回指定索引处的字符
String.fromCharCode(num1,num2,…)参数列表中的序列表示的是Unicode值
返回指定的unicode值序列创建的字符串
.concat(str1,str2,str3,…)
将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回
.
.lastIndexOf(str)
从后往前找
str2=str1.replace("cc","xx");//在str1中用xx代替cc并用str2接收,原字符串不变
.slice(beginSlice[,endSlice])
提取一个字符串的一部分,并返回一串新的字符串。包左不包右
.split([separator[,limit]])
指定分隔符分割一字符串,limit是指切割后留下的个数
.toLocaleLowerCase()
将调用的字符串转为小写
toLocaleUpperCase()
转大写
.trim()
去空格
//案例:统计某一字符串中各字母出现了几次
把字母作为键,次数作为值,添加到对象中,之后遍历即可
var str3=...;
//第一步:把全部字母变成小写
str3=str3.toLowerCase();
//第二步:创建一个空对象,目的是把字幕作为键,次数作为值
var obj={};
//遍历字符串,获取每个字母
for(var i=0;i<str3.length;i++){
//判断obj这个对象中有无该字母
var key=str3[i];//每个字母
if(obj[key]){
//判断obj中有无这个键
//有该字母,次数加一
obj[key]++;
}else{
//无该字母,赋次数1
obj[l=key]=1;
}
}
//遍历对象
for(var key in obj){
console.log(key+"出现了"+obj[key]+"次");
}
3、Array对象
数组也是对象
如何判断变量是不是数组类型:
–instanceof
var obj={};//如果是中括号则返回true
console.log(obj instanceof Array);//false
–Array.isArray(变量名或值)
用于确定传递的值书否为一个Array
1)构造函数
var arr1=new Array();
字面量的方式
var arr2=[];
2)方法:
Array.from(arr);
var newArr=Array.from(["1","2","3"]);//将生成数组["1","2","3"]
.concat(数组1,数组2…)
拼接数组
.every(callback[, thisArg])
测试数组的所有元素是否通过了指定函数的测试,返回布尔类型。callback处为一回调函数,被调用时传入3个参数:元素值,元素的索引,原数组
var arr=[1,2,3,4,5];
var x=arr.every(function (a,b,c){
//console.log(arguments.length);//可得知callback函数所需参数的数目是3个
return a>3;//当数组内所有元素的值都大于3时才返回true
})
.filter(函数)
创建一个新数组,该数组的元素时原数组中符合函数规定条件的元素
var arr=[1,2,3,4,5];
var newArr=arr.filter(function(ele){
return ele>40;
});
arr.push(值);将值添加到数组最后边
arr.pop();删除数组中的最后一个元素,返回值就是删除值
arr.shift();删除数组中第一个元素,返回值 就是删除值
arr.unshift(值);向数组的第一个元素之前插入一元素,返回的是插入的数据
.forEach(函数);该方法对数组的每个元素执行一次提供的回调函数。用于遍历数组。注意:回调函数总是有三个参数currentValue当前值,index(索引),array(正在操作的数组)
var arr=[1,2,3,4];
arr.forEach(function(ele,index){
console.log(ele+index);
});//低版本浏览器不支持
.join(“字符”);
向数组中添加各元素间的分隔符
.map();
创建一个数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果
var numbers=[1,4,9];
var roots=number.map(Math.sqrt);
console.log(roots);//返回[1,2,3]
.reverse()
反转数组
.sort()
var arr=[1,6,3,5,2,4,7,9,3];
arr.sort(function(a,b){
//a相当于冒泡排序中的a[j]
//b相当于冒泡排序中的a[j+1]
if(a>b){
return 1;
}else if(a==b){
retuen 0;
}else{
return -1;
}
});//固定写法
数组元素排序,参数列表可有一个函数,作为排序规则
.slice(start,end)
返回一个从开始到结束选择的数组的一部分浅拷贝到一个新数组的对象
.splice()
通过删除现有元素和/或添加新元素来更改一个数组的内容
4、基本包装类型
普通变量不能直接调用属性和方法,对象可以直接调用属性和方法
基本包装类型本身是基本类型,但在执行代码的过程中,如果这样的变量调用了属性或是方法,则这种类型就不再是基本类型了,而是基本包装类型,这个变量也不是普通的变量了,而是基本包装类型的对象。
string,number,boolean既是基本类型,也是基本包装类型
var num=10;
console.log(num.toString());
对象&&true;//返回true
true&&对象;//返回对象
var num=10;//基本类型
var num2=Number("10");//仅类型转换,基本类型
var num3=new Number("10");//基本包装类型
JS自学笔记05的更多相关文章
- JS自学笔记04
JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.nam ...
- JS自学笔记03
JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...
- JS自学笔记02
JS自学笔记02 1.复习 js是一门解释性语言,遇到一行代码就执行一行代码 2.查阅mdn web文档 3.提示用户输入并接收,相比之下,alert只有提示的作用: prompt(字符串) 接收: ...
- JS自学笔记01
JS自学笔记01 1.开发工具 webstorm 2.js(javascript) 是一门脚本.解释性.动态类型.基于对象的语言 含三个部分: ECMAScript标准–java基本语法 DOM(Do ...
- JAVA自学笔记05
JAVA自学笔记05 1.方法 1)方法就是完成特定功能的代码块,类似C语言中的函数. 2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,-){ 函数体; return ...
- Node.js自学笔记之回调函数
写在前面:如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择.这段时间对node.js进行了简单的学习,在这里 ...
- Three.js学习笔记05
场景相关函数和属性 下面的代码中应用到了所有以上的函数及属性: <!DOCTYPE html> <html lang="en"> <head> ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记05
day5课程内容: 集成开发环境(IDE) VIM #经典的Linux下的文本编辑器 Eclipse #Java IDE Visual Studio #微软开发的IDE notepad++ subli ...
- JavaScript自学笔记(1)---表单验证,let和const,JSON文件
今天开个JS自学笔记,本身JS的语法很简单,如果学过Java或者C系的都很容易,就不讨论了.主要是讨论实际应用的问题. 1.表单验证: a.html自动验证: HTML 表单验证可以通过浏览器来自动完 ...
随机推荐
- Git Flow,Git团队协作最佳实践
规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高, 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代码丢 ...
- 秒懂C#通过Emit动态生成代码
首先需要声明一个程序集名称, 1 // specify a new assembly name 2 var assemblyName = new AssemblyName("Kitty&qu ...
- [WC2014]紫荆花之恋
题解: 首先考虑点分治 dis(i,u)+dis(i,v)<=value[u]+value[v] 移项就很容易发现用平衡树可以很简单的维护这个东西 但是有重复,需要在下一层的每个平衡树内减去这个 ...
- MySQl 查询性能优化相关
0. 1.参考 提升网站访问速度的 SQL 查询优化技巧 缓存一切数据,读取内存而不是硬盘IO 如果你的服务器默认情况下没有使用MySQL查询缓存,那么你应该开启缓存.开启缓存意味着MySQL 会把所 ...
- 自建yum仓库yum源
目的:搭建自己的yum源主要是解决大批量服务器下载更新人互联网带宽占用问题及速度问题以及不能访问的问题. 服务端: 步骤如下: 一.创建一个目录,就是我们yum软件存放的目录 [root@vicwe ...
- day64 url用法以及django的路由系统
此篇博客是以备后查的,用到的时候记得过来查找即可! 路由系统:就是我们的django项目创建的时候自带的那个urls.py 它本身里面是映射的对应关系,一个大的列表里面,一个个元祖,元祖里面是url或 ...
- day 35 协程与gil概念
博客链接: http://www.cnblogs.com/linhaifeng/articles/7429894.html 今日概要: 1 生产者消费者模型(补充) 2 GIL(进程与线程的应用场景) ...
- Linux下C语言的socket网络编程
关于详细的服务器建立的步骤以及相关的socket套接字的知识我已经在python socket编程的文章中提到过了,大家可以参看那一篇博客来历接socket套接字编程的内容,由于要是用C相关的API所 ...
- 使用 PySide2 开发 Maya 插件系列二:继承 uic 转换出来的 py 文件中的类 Ui_Form
使用 PySide2 开发 Maya 插件系列二:继承 uic 转换出来的 py 文件中的类 Ui_Form 开发环境: Wing IDE 6.1 步骤1: 打开 Wing IDE,创建一个新的 pr ...
- uni-app — 一套前端开发跨平台应用的终极解决方案
uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS.Android.H5.小程序等多个平台. 今天有空就来介绍一下uni-app这个能够跨平台开发, ...