首页

JavaScript对象、内置对象、值类型和引用类型详解

前端达人

对象

JS中的对象是属性行为结合体,其中属性是对象的静态特征,行为又称方法,是对象的动态特征。

JavaScript中的对象主要分为三大类:

  • 内置对象
    由ES标准中定义的对象 在任何的ES的实现中都可以使用,比如Math String Number Boolean Function Object
  • 宿主对象
    由JS的运行环境提供的对象,目前来讲主要是浏览器提供的对象,比如BOM DOM
  • 自定义对象
    由开发人员自己创建的对象

对象的定义

定义非空对象

 // 非空对象: var 对象名 = { 属性名: 值, ... 方法名: function([参数]){ 方法体语句; } ... } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
 var p1 = { color: '黑色',//给对象添加属性 weight: '188g',//属性之间用逗号隔开 screenSize: 6.5, call: function(name){//给对象添加方法 console.log("打出电话:"+name); }, sendMassage: function(msg){ console.log("发出的信息是:"+msg); }, playVideo: function(){ console.log("播放视频"); }, playMusic: function(){ console.log("播放音乐"); } } console.log("手机颜色:"+p1['color']);//也可以使用 对象['属性']来输出属性值 console.log("手机重量:"+p1.weight); console.log("屏幕尺寸:"+p1.screenSize); p1.call("张三");//调用对象的发方法 p1["sendMassage"]("helo"); p1.playVideo(); p1.playMusic(); console.log(p1); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

使用new Object()创建对象

 var p = new Object(); // 创建一个空对象p 
  • 1
 p2.name = '刘备'; p2.sex = '男'; p2.age = 32; p2.sayHello = function(){ console.log('Hello'); } p2.sayHello();//调用对象的方法 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以使用构造函数来创建对象:
语法: new 构造函数名( )

 function Student(name,sex,age){ this.name = name;//这里的this指向的是构造函数新创建的对象 this.sex = sex; this.age = age; this.show = function(){ console.log("姓名:"+this.name) console.log("姓别:"+this.sex) console.log("年龄:"+this.age) } } var s1 = new Student('乔峰','男',28);//s1为构造函数创建的新对象 即实例 s1.show(); var s2 = new Student('段誉','男',23); s2.show(); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

注意:"构造函数"可以有参数,也可以没有参数,如果没有参数小括号可以省略

遍历对象的成员

遍历对象的属性和方法:使用for…in循环

 for(var 变量名 in 对象名){ 循环语句 } 
  • 1
  • 2
  • 3
 function Student(name,sex,age){ this.name = name; this.sex = sex; this.age = age; this.show = function(){ console.log("姓名:"+this.name) console.log("姓别:"+this.sex) console.log("年龄:"+this.age) } } // s2是要遍历的对象 var s2 = new Student('段誉','男',23); for(var k in s2){ console.log(k);//依次输出 name sex age show() console.log(s2[k]);//依次输出 段誉 男 23  } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

in运算符
判断成员(属性)在对象中是否存在,存在返回true;不存在返回false。

JS内置对象

JavaScript提供了很多常用的内置对象,包括数学对象Math、日期对象Date、数组对象Array以及字符串对象String等。

Math对象

Math对象:用来对数字进行与数学相关的运算,不需要实例化对象,可以直接使用其静态属性和静态方法.

 Math对象:不需要实例化
            Math.PI:算数常量PI Math.abs(x):返回x的绝对值
            Math.max(args...):返回最大数
            Math.min(args...):返回最小数
            Math.pow(x,y):返回x的y次方
            Math.sqrt(x):返回x的算术平方根
            Math.random():返回0.01.0之间的随机数
            Math.round(x):返回最接近x的整数
            Math.floor(x):返回一个小于等于x 并且与它最接近的整数
            Math.ceil(x):返回一个大于等于x 并且与它最接近的整数 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Date对象

Date对象:需要使用new Date()实例化对象才能使用,创建一个对象 Date()是一个构造函数,可以给该构造函数传递参数生成一个日期对象。
在这里插入图片描述
在这里插入图片描述

 // 1.创建一个Date对象 没有参数 var date1 = new Date(); console.log(date1); // 2.传入年 月 日 时 分 秒 创建一个指定日期时间的Date对象 // 月份是 0-11 var date2 = new Date(2021,4,22,10,17,55); console.log(date2); // 3.传入一个日期和时间字符串创建一个Date对象 var date3 = new Date("2021-5-22 18:19:25"); console.log(date3); console.log(date3.getMonth())//4 console.log(date3.getTime())//表示Date对象距离1970年1月1日午夜之间的毫秒数 console.log(date1.toLocaleDateString())//2021/6/14 console.log(date1.toLocaleString())//2021/6/14 下午11:17:36 console.log(date1.getFullYear())//2021 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

数组对象

数组:是一些类型相同的数据的集合,它和普通的对象功能类似,也是用来存储一些值,数组是使用数字来作为索引操作内部的元素。
数组的创建

  • 使用字面量
 var arr=[]//创建一个空数组 
  • 1
  • 使用new Array创建
var arr = new Array();//定义一个空数组 
  • 1

判断一个对象是不是数组的两种方法:

  • isArray(对象名)
  • instanceof: 对象名 instanceof Array
 var arr = []; var obj = {}; console.log(Array.isArray(arr));//true console.log(Array.isArray(obj));//false console.log(arr instanceof Array);//trrue 
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
关于数组的其他方法之前的文章要有详细介绍,这里不多做解释。

String对象

String对象:字符串对象,必须使用new String()来创建

字符串常用方法

 - charAt(n) 返回n位置上的字符串 - concat(s1,s2,...) 连接多个字符串 - charCodeAt(n) 返回n位置上的ASCII- split('分隔符') 将字符串按给定的分隔符 转换成字符串数组 - substr(start,length) 从start开始提取length个字符构成一个新串 - substring(from,to) 提取from和to之间的字符串构成一个新串 - toLowerCase() 将串中的大写字符转换成小写 不影响原字符串 返回一个新字符串 - toUpperCase() 将串中的所有小写转换成大写 不影响原字符串 返回一个新字符串 - replace(str1,str2) 使用str2替换字符串中的str1 返回替换结果 不影响原字符串 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

字符串对象练习

 // 输入一个由字母组成的字符串,统计串中每个字母出现的次数 var str = 'abBSdXbdea'; var lower = new Array(26);// 存放26个小写字母各自出现的次数 var upper = new Array(26);// 存放26个大写字母各自出现的次数 // 初始化两个数组 for(var i=0;i<lower.length;i++){ lower[i] = 0 upper[i] = 0 } for(var k=0;k<str.length;k++){ if(str.charAt(k)>='a' && str.charAt(k)<='z'){ lower[str.charCodeAt(k)-97]++ }else if(str.charAt(k)>='A' && str.charAt(k)<='Z'){ upper[str.charCodeAt(k)-65]++ } } console.log(lower); console.log(upper); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
 /* 输入一个十进制整数和一个数制(2、8、16)将该十进制整数转换成
        对应的数值格式输出
            取余法:
               m=15 k=8
               m%k 将余数存放在数组中
        */ var m = parseInt(prompt('请输入一个整数:')); var k = parseInt(prompt('请输入一个数制(2~16)')); var result = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']; var arr = new Array();//存放数制转换的结果 var i = 0; while(m!=0){//对m进行数制转换 将余数放在arr数组里 arr[i] = m%k; m = parseInt(m/k); i++; } var str = ''; if(k==8){ str = '0'; }else if(k==16){ str = '0x'; } for(var i=arr.length-1;i>=0;i--){ str += result[arr[i]]; } console.log('转换的结果为:'+str); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

值类型和引用类型

值类型: 简单的数据类型(字符串,数值型,布尔型,undefined,null)
引用类型: 复杂数据类型(对象) 变量中保存的是引用的地址

注意: 引用类型的特点是,变量中保存的仅仅是一个引用的地址,当对变量进行赋值时,并不是将对象复制了一份,而是将两个变量指向了同一个对象的引用。

下面对内存中的栈和堆进行分析
栈(stack):会自动分配内存空间,会自动释放,简单数据类型存放到栈里面。
堆(heap):动态分配的内存,大小不定也不会自动释放,复杂数据类型存放到堆里面。

在这里插入图片描述
由此可见存放在堆内存中的对象,变量实际保存的是一个指针,这个指针指向另一个位置,通过这个指针来寻找堆中存储的对象的属性和值,并且每个空间大小不一样,要根据情况开进行特定的分配。




蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

截屏2021-05-13 上午11.41.03.png


转自:csdn
分享此文一切功德,皆悉回向给文章原作者及众读者.

免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

Web前端-JS基础

前端达人

JS的历史和特点简介

JS诞生的背景

1.随着互联网的发展,页面传递给后台有太多需要验证的东西,尽管后端的代码是能够实现对传递过来的数据进行校验和判断的,但是这样的话无疑是加重了后台程序的工作任务量,于是广大互联网工作人员迫切需要有一种新的办法/语言能够实现这样的效果,于是js也就是在这样的一个大的时代背景下诞生的

2.js最开始的时候是不叫js而是叫scrpit语言,他们也想将这个前景光明的明日之星卖给微软,但是微软没有买下,在种种机缘巧合之后被Sun公司收购了,为了让其与java语言走的近点 ,更是改名为JavaScript简称为js

JS的历史

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成

1997年,在ECMA(欧洲计算机制造商协会)的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。

JS的特点

1.弱类型语言:在书写的时候不去做明确的数据类型的限定 例如 var a=3.14 var b=“998”

2.运行在浏览器端的解释执行性语言(js—>node.js可以运行在服务器上)

3.基于对象的编程语言

4.跨平台性:JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。

5.动态性:JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种操作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。

可以简单的理解为:只要用户发出动作,js就会产生响应

6.安全性:JavaScript是一种安全性语言,它不直接允许访问本地的硬盘,并不能直接将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。

小结:js现在的用途

1)作用于浏览器端帮助提升用户的体验度

2 ) 可以用来编写游戏脚本

3)可以被构建成各种组件(node.js,React.js,vue.js, Jquery)

JS的语法基础

第一个JS例子

<html> <head> <meta charset="UTF-8"> <title>JS</title> </head> <body> <script type="text/javascript"> alert("Hello World"); /*弹出对话框*/ </script> </body> </html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

小结:1.js在页面内使用的时候必须要写在<script>标签内

2.js代码书写的时候不用分号标识一行编程语句的结束

3.在js代码中xxx():此时表明这是一个函数

4.alert():以弹窗的形式将括号内的内容展示出来

JavaScript 语法

JavaScript: 是一个脚本语言。它是一个轻量级,但功能强大的编程语言

1.数据类型:虽然JavaScript在书写校验上不去区分数据的类型,但是并不意味着是不区分数据类型,而是通过在浏览器中内置的JS解析器/引擎自动的去判断的

---------------------------------------------------------------------------------------------------------

1.1数字:

var a=12 //整数

var b=2.3 //浮点数或者说是小数型

var c=-0.5

友情提示:1)在js中变量名必须以字母或下划线("_")开头

2)变量可以包含数字、从 A 至 Z 的大小写字母

3)JavaScript 区分大小写,即变量 myVar、 myVAR 和 myvar 是不同的变量

---------------------------------------------------------------------------------------------------------

1.2逻辑型或布尔型:

var a= true

var b=false

alert(a)

alert(b)

---------------------------------------------------------------------------------------------------------

1.3Undefined 和 null

Undefined: 用于存放 JavaScript 的 undefined 值,表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性

null:可以通过将变量的值设置为 null 来清空变量,其意思为空值

var a=""

var a=null

var a

alert(typeof(a))

---------------------------------------------------------------------------------------------------------

1.4字符串: 可以使用单引号或双引号

var firstName=“biil”

var familyName=‘Gates’

alert(firstName+familyName)

---------------------------------------------------------------------------------------------------------

1.5日期:

var myDate=new Date()

alert(myDate)/默认是格里尼形式的日期格式/

提示:Date是js中的一个内置的类

new:为类Date在内存中创建一个内存空间,进而实现实例化

补充:关键字:就是具有特殊含义的词

---------------------------------------------------------------------------------------------------------

1.6数组:是一种存放数据的容器,其一般可以存放多个,且需要知道其长度

var array=[40, 100, 1, 5, 25, 10]

alert(array[0])

---------------------------------------------------------------------------------------------------------

注释:

单行注释://

多行注释:/**/

扩展:注释的作用:

1)统一规范

2)注解,帮助理解/阅读代码

3)扯淡

---------------------------------------------------------------------------------------------------------

连接字符和转义字符:

连接字符:在js中场用+表示为连接字符

例如: var a=123

alert(‘变量a的值为:’+a)

转义字符:具有特殊含义的字符

\n 换行符 alert(“这是第一局 \n 这是第二句”)

\t 制表符 alert(“这是第一局 \t 这是第二句”)

---------------------------------------------------------------------------------------------------------

2.运算符:

2.1算术运算符: +, -, *, /, %,++,--

++:自动加1 例如 var a=12

alert(a++)

++在前:先计算再输出; ++在后:先输出再计算

–:自动减1,例如 var h=6

alert(a–)

---------------------------------------------------------------------------------------------------------

2.2关系运算符: > ,>=, <,<=, !=, ==,===

---------------------------------------------------------------------------------------------------------

2.3逻辑运算符:

与 :&& :全真为真,只要有一个假则为假

或 :|| :全假为假,只要有一个为真则为真

非 :! :取相反的

JavaScript 输出

JavaScript 可以通过不同的方式来输出数据:

1)使用 window.alert() 弹出警告框。

<html> <body> <h1>使用 window.alert() 弹出警告框</h1> <script> window.alert(5 + 6); </script> </body> </html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

2)使用 document.write() 方法将内容写到 HTML 文档中。

<html> <body> <h1>我的第一个 Web 页面</h1> <script> document.write(123); </script> </body> </html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

3)使用 innerHTML 写入到 HTML 元素。

 <html> <body> <h1>使用 innerHTML 写入到 HTML 元素</h1> <p id="demo">我的第一个段落</p> <script type="text/javascript"> document.getElementById("demo").innerHTML = "段落已修改。"; </script> </body> </html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

使用innerHTML方法,将前面定位到的选择器中的标签内容进行更改

在这里插入图片描述

4)使用 console.log() 写入到浏览器的控制台。

<!DOCTYPE html> <html> <body> <h1>使用 console.log() 写入到浏览器的控制台</h1> <script> a = 5; b = 6; c = a + b; console.log(c); </script> </body> </html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

console.log()会将想要输出的数据写到网页的控制台中显示
在这里插入图片描述

基本语句

1)顺序语句:js默认是从上向下自动执行的

2)选择语句:

2.1)二路分支:

if(条件)

{

//JavaScript代码;

}

else

{

//JavaScript代码;

}

2.2)多路决策:

switch (表达式)

{

case 常量1 :

JavaScript语句;

break;

case 常量2 :

JavaScript语句;

break;

default :

JavaScript语句;

}

小结:switch…case…default不仅有多路决策的特性,还有穿透性

或者:

if (time<10) { alert("早上好"); } else if (time>=10 && time<16) { alert("中午好"); } else { alert("晚上好!"); } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

3)循环语句:

for循环语句:

for (var i=0;i<10;i++) { alert("当前i的值为:"+i) } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

while循环语句:

var i =1 while (i>5) { alert("当前i的值为:"+i) i++; } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

do…while循环:

var i=5 do { alert("执行了") i++; } while (i<5); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

备注:for:知道次数的循环

while:>=0次的循环

do…while:>=1次的循环

break:语句用于跳出循环。

continue:用于跳过循环中的一个迭代。

JavaScript 数据类型的转换

1.typeof 操作符:可以使用 typeof 操作符来查看 JavaScript 变量的数据类型。

2.将数字转换为字符串

 var a=123 //第一种方法,用String //var castResult=String(a)  //第二种方法,用toString方法 var castResult2=a.toString() alert(typeof(castResult2)) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.将字符串转换为数字

 var a="123" //用Number转换 var b=Number(a) //用parseInt方法将字符串强行转换为数字 //var b=parseInt(a) alert(typeof(b)) alert(b+998) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

javaScript方法

1.match():匹配字符串可用正则表达式

2.search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置

 var str = "abcderfha"; //返回查找到的下标位置 alert(str.search("er")) //返回 4 //查查找不到的时候返回-1 alert(str.search("zy"))//返回-1 
  • 1
  • 2
  • 3
  • 4
  • 5

3.replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

var str = "Hello World"; alert(str.replace("World","javascript"))//显示结果为Hello javascript 
  • 1
  • 2

javaScript函数

js中的函数定义

语法: function 函数名( ){

}

实例一

<html> <head> <meta charset="UTF-8"> <title>JS函数</title> </head> <script type="text/javascript"> function sum(a,b){ alert(a+b) } </script> <body> <input type="button" value="求和" onclick="sum(3,4)" /> </body> </html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

定义一个求和函数,当点击求和按钮的时候将计算出传入的两个参数的和

ps:onclick单击事件
在这里插入图片描述

匿名函数定义

var xx =function(x,y){

alert(x+y)

}(23,34);

(function( o ){

alert(o)

})(“你好”)

实例二:

<script type="text/javascript"> var fun=function(a,b){ alert(a+"\n"+b) } fun(12,45); </script> ------------------------- <script type="text/javascript"> (function( o ){ alert(o) })("你好") </script> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述在这里插入图片描述

JS对象

数组对象

创建一个数组:三种方式

1:常规方式

<script type="text/javascript"> var myCars=new Array(); myCars[0]="nike" myCars[1]="李宁" myCars[2]="安踏" alert(myCars[1]) </script> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2:简洁方式

<script type="text/javascript"> var myCars=new Array("nike","李宁","安踏"); alert(myCars[1]) </script> 
  • 1
  • 2
  • 3
  • 4

3:字面方式

<script type="text/javascript"> var myCars=["nike","李宁","安踏"]; alert(myCars[1]) </script> 
  • 1
  • 2
  • 3
  • 4

2:访问数组:通过指定数组名以及索引号码,你可以访问某个特定的元素

例如:var name=myCars[0];

3:数组的方法和属性

数组名.length : 数组 中元素的数量

数组名.indexOf(“abc”):“abc” 值在数组中的索引值

4:数组的排序

数组名.sort(); :将数组按正序排序,但是是按照字符串的排序方式来排序,不管里面是数字还是什么都是按字符串的排序方式来排序

reverse():将一个数组中的元素的顺序反转,(即是将数组中的元素的头变成尾,尾变成了头,不是其他的)

扩展:将数组先用sort()方法进行正序排序,在利用reverse()方法反转,即可达成降序的目的

字符串对象

字符串中常用的属性和方法

str.length:获取字符串的长度

str.match(""):内容匹配

str.replace():替换内容

var str="adsfadsf"; var n=str.replace("adsf","abcx"); var s=str.length; 
  • 1
  • 2
  • 3

JS面向对象编程

1.对象:是属性和/方法的组合

属性:是对象所拥有的一组外观特征,一般为名词

方法:是对象可以执行的功能,一般为动词

例如:对象:汽车

属性:型号:法拉利 颜色:绿色

方法:前进、刹车、倒车

PS:三类已经存在的对象:

浏览器对象:BOM(已经存在于浏览器中的,到时候我们直接调用即可,例如Screen,History,Location,Navigator)

js脚本对象:数组,字符串,日期,Math等(JS语言中已经写好的具有某一些功能的对象,例如Array,Number,Math…)

HTML文档对象:DOM(已经存在于HTML中的,且已经写好了,用的时候可以直接调用即可,例如Document

例如:

<script type="text/javascript"> function Car(name,color) { this.name=name; this.color=color; this.type="轿车"; this.fun=function(){alert("100km/h");} } var car1=new Car("奥迪","蓝色"); var car2=new Car("奔驰","绿色"); alert(car1.type); //轿车 car1.fun();//100km/h </script> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

javaScript选择器

1.id选择器:通过 id 查找 HTML 元素,如果找到该元素,则该方法将以对象的形式返回该元素。

document.getElementById("id1").value //获取id为id1的标签中的value值 
  • 1

2.name选择器:通过name查找到HTML的元素,如果找到元素了,则会返回一个数组

 var arr=document.getElementsByName("like") //将name为like的标签全部存入arr数组中 
  • 1

3.通过标签名找到 HTML 元素:

getElementsByTagName("p"); var habbies=document.getElementsByTagName("input")//其他的都与步骤2一样 
  • 1
  • 2
  • 3

javaScript弹框

确认框

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>确认框</title> </head> <body> <p>点击按钮,显示确认框。</p> <button onclick="myFun()">点击</button> <p id="demo"></p> <script type="text/javascript"> function myFun() { var x; var r=confirm("是否提交商品订单");//弹出一个确定框,确定,返回true,取消返回false if(r==true){ x="提交成功,已确定" } else{ x="提交失败,已取消" }//抓取掉id为demo的标签,在屏幕显示x内容 document.getElementById("demo").innerHTML=x; } </script> </body> </html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

在这里插入图片描述

点击确定,会在屏幕显示”提交成功,已确定“,点击取消,会在屏幕显示"提交失败,已取消"

对话框

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>确认框</title> </head> <body> <p>点击按钮,显示输入框。</p> <button onclick="myFun()">点击</button> <p id="demo"></p> <script type="text/javascript"> function myFun() { var x; var r=prompt("请输入你的名字","Hello"); //弹出对话框,可输入名字 //判断如果输入的不为空或者不是空字符串,则x被赋值 if(r!=null && r!=""){ x="早上好"+r+"今天又是新的开始,加油" } //抓取掉id为demo的标签,在屏幕显示x内容 document.getElementById("demo").innerHTML=x; } </script> </body> </html> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

在这里插入图片描述

点击确定以后则会将被赋值的x显示在屏幕中



蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

截屏2021-05-13 上午11.41.03.png


转自:csdn
分享此文一切功德,皆悉回向给文章原作者及众读者.

免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

JS实现数组去重,显示重复元素及个数的方法示例

前端达人

本文实例讲述了JS实现数组去重,显示重复元素及个数的方法。分享给大家供大家参考,具体如下:

<script>
var arr = ['土豆','土豆','茄子','土豆','茄子','土豆','紫红色'];
function qc(arr){
    var resultObj = {};
    var result = [];
    var result2 = [];
    for(var i=0; i<arr.length; i++){
      if(result.indexOf(arr[i]) == -1){
        result.push(arr[i]);
      }else{
      if(result2.indexOf(arr[i]) == -1){
        result2.push(arr[i]);
      }
      }
    }
    var obj = {}
    arr.forEach((v,k)=>{
      if(obj[v]){
        obj[v]++;
      }else{
        obj[v] = 1;
      }
    });
    resultObj.result = result;
    resultObj.result2 = result2;
    resultObj.obj = obj;
    return resultObj
}
console.log(qc(arr));
</script>

使用在线HTML/CSS/JavaScript代码运行工具http://tools.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行结果:

双层for循环遍历


<script> var a=[1,2,3,4,5,3,5,42,0,2,3,0]
function qc(arr){

var result=[];
    for(var i=0; i<arr.length; i++){
      for(var j=i+1;j<arr.length;j++){
        if(arr[i] === arr[j]){
          j=++i
        }
      }
      result.push(arr[i])
    }
    document.write(result)
}
qc(a);
</script>

使用在线HTML/CSS/JavaScript代码运行工具http://tools.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行结果:




蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

截屏2021-05-13 上午11.41.03.png


转自:站长之家
分享此文一切功德,皆悉回向给文章原作者及众读者.

免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

outlook邮箱签名制作总结

前端达人



最做了邮箱签名的需求,想着之前做过两次签名也不是很难   于是开始了本次outlook签名的超长途旅行



v2-b00fc49c597e5fc2449663399df0d5df_1440w.jpg

本次总结不到位的或者不正确的地方 还请大神指正





首先手撸一个table出来 写内容


1.邮件使用table+css布局

2.邮件主要部分在body内部,所以样式一定要写成内嵌的,不能在head标签中写style,也不能外联。

如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<table border="0" cellspacing="0" cellpadding="0" style="font-family:'微软雅黑',Helvetica,Arial,sans-serif;font-size:14px " width="100%">
     <tbody>
                <tr>
                    <td style="font-family:Helvetica,Arial,sans-serif;font-size:14px;">
                    <table width="100%" border="0" cellpadding="5" cellspacing="0" >
                            <tbody>
                                <tr>
                                    <td>
                                        <p style="margin:0;font-size:14px;line-height:24px;font-family:'微软雅黑',Helvetica,Arial,sans-serif;margin-bottom: 20px"><br>                          尊敬的开发者:<br>                        </p>
                                        <p style="color:#000;margin:0;font-size:14px;line-height:24px;font-family:'微软雅黑',Helvetica,Arial,sans-serif;"><br>                         “xxx”在此次的‘网络友好度测试’评级:<span style="color:#F44336;">4颗星</span>(最高5颗星)。<br>                        </p>
                                    </td>
                                </tr>
                            </tbody>
                    </table>                                                          
                   </td>
              </tr>
                
   </tbody>
</table>           

3.不能用浮动的方式定位。position:absolute;float:left;等都不行,float在qq邮箱客户端中可以识别,但是在outlook中无法识别。

4.表格的border,使用table上的border属性,可以在qq浏览器中兼容,但是在outlook中打开是没有边框的,这种情况,我么只能给每一个td加一个border,在table中使用border-collapse:collapse;来合并重复的边框。

如:

1
<table width="90%" border="1px" style="color:#000;margin:0;font-size:14px;line-height:24px;font-family:'微软雅黑',Helvetica,Arial,sans-serif;text-align: left;margin:40px auto;border-collapse:collapse;">

这样设置border会在outlook中显示不出border;

5.为了保证兼容性,需要把邮件的宽度设置为600px,最大600px;

6.少用img,因为很多邮箱客户端默认不显示图片,所以,如果需要图片的话,一定要写好alt和title;

7.背景图片,尽量用background-color使用纯色背景,如果一定要用背景图片,使用background属性,

1
<div background=”http://image1.koubei.com/images/common/logo_koubei.gif”></div>

8.邮件不支持javascript,flash以及一些特殊的标签。







因为不能浮动 定位 等  一些设计笔记复杂的内容 需要横向排列的  只能多撸几个table了 暂时我是这样解决的 比较麻烦



在outlook签名中最难处理的行高,line-height属性,outlook的这个属性只能支持在块上设置,比如可以给td标签设置line-height,但是不能给span设置line-height,否则行高设置是不起作用的。

     具体内容可以根据实际情况改写。修改签名文件后,最好关闭outlook重新打开一下,要不然outlook里面会有缓存,造成显示错误。
v2-253613b5dd4140a046b5b24bf8f3c5d7_1440w.jpg

紧接着 在图片引用上遇到了问题
https的图片调用 outlook竟然给屏蔽了, 需要用户开启权限才能显示 非常影响用户体验,

于是我就把图片换成base64格式引用, 同样遇到了问题, base64格式下 outlook无法使用style操控图片尺寸,这就使图片的宽高变成非常小,同样清晰度也大大降低, 
而且outlook在引用base64格式图片情况下  如果图片过小 还会出现部分黑边 十分的麻烦
目前暂时没找他其他的方案处理,有大神帮忙指点下
v2-185fffb8ff50312a5c65e46d36484086_1440w.jpg

最总边学边做的情况下完成了这个签名, 虽然一路坎坷 还算比较满意的完成了这次签名
记录一下 继续学习

蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

截屏2021-05-13 上午11.41.03.png


分享此文一切功德,皆悉回向给文章原作者及众读者.

免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


Centos7 Yum安装 PHP5.5,5.6,7.0

前端达人

默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案:

1.检查当前安装的PHP包
yum list installed | grep php
如果有安装的PHP包,先删除他们
   yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64
2.Centos 5.X
    rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
  CentOs 6.x
    rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
  CentOs 7.X
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
 
如果想删除上面安装的包,重新安装
rpm -qa | grep webstatic
rpm -e  上面搜索到的包即可

3.运行yum install
  yum install php55w.x86_64 php55w-cli.x86_64 php55w-common.x86_64 php55w-gd.x86_64 php55w-ldap.x86_64 php55w-mbstring.x86_64 php55w-mcrypt.x86_64 php55w-mysql.x86_64 php55w-pdo.x86_64

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

注:如果想升级到5.6把上面的55w换成56w就可以了。

yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

4.安装PHP FPM
yum install php55w-fpm 
yum install php56w-fpm 
yum install php70w-fpm

注:如果想升级到5.6把上面的55w换成56w就可以了。

 

我们要使用yum来安装php-fpm和比较新版本的php,nginx,MySQL-server的话, 首先得给yum添加几个源,CentOS默认的源里面软件比较旧,有些软件、库还没有。

EPEL源:

Extra Packages for Enterprise Linux (or EPEL)或者叫企业版 Linux 附加软件包, 是一个由特别兴趣小组创建、维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版 (比如 CentOS、 Scientific Linux)的一个高质量附加软件包项目。

EPEL 的软件包通常不会与企业版 Linux 官方源中的软件包发生冲突,或者互相替换文件。 EPEL 与 Fedora 项目基本一致,包含完整的构建系统、升级管理器、镜像管理器等等。

EPEL源官方网站:https://fedoraproject.org/wiki/EPEL

添加EPEL源:

32位CentOS,在命令行运行下面命:  rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm  

64位CentOS,在命令行运行下面命令:  rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm  

EPEL源只能作为CentOS官方源的补充,里面还都是一些系统基础的软件包, 我们要安装的php,php-fpm,mysql等软件里面还是没有,所以接下来添加另一个软件源Remi。

Remi源中的软件几乎都是最新稳定版。或许您会怀疑稳定不?放心吧, 这些都是Linux骨灰级的玩家编译好放进源里的,他们对于系统环境和软件编译参数的熟悉程度毋庸置疑。

Remi官方网站:http://rpms.famillecollet.com/

添加Remi源,不管32位还是64位的系统,运行下面命令:   rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm  

Remi源默认是没有启用的,我们来启用Remi源,修改 /etc/yum.repos.d/remi.repo 文件,把文件内的 enabled=0 改为 enabled=1 ,注意:改文件内有2个 enabled=0 我们修改[remi]下面的,不要修改[remi-test]下面的。

到这里yum源的配置结束,下面安装软件就简单了。安装时候有询问y/n的时候都是y

安装php,php-fpm以及php扩展:  yum install php php-fpm php-bcmatch php-gd php-mbstring php-mcrypt php-mysql  

PHP配置文件php.ini路径: /etc/php.ini 

php-fpm配置文件php-fpm.conf路径:/etc/php-fpm.conf

 

成功只是比失败多走了一步而已,坚持自己的梦想,永不言弃!






蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

截屏2021-05-13 上午11.41.03.png


转自:csdn 

分享此文一切功德,皆悉回向给文章原作者及众读者.

免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


CentOS 7 64位下MySQL5.7卸载改成MySQL5.6版本(YUM)

前端达人

1: 检查是否安装了MySQL组件。

[root@DB-Server init.d]# rpm -qa | grep -i mysql
mysql-community-client-5.7.19-1.el7.x86_64
mysql-community-common-5.7.19-1.el7.x86_64
mysql-community-libs-compat-5.7.19-1.el7.x86_64
mysql-community-libs-5.7.19-1.el7.x86_64
qt-mysql-4.8.5-13.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-server-5.7.19-1.el7.x86_64
perl-DBD-MySQL-4.023-5.el7.x86_64 

2: 卸载前关闭MySQL服务

systemctl stop mysqld

yum -y remove mysql-community-client-5.7.19-1.el7.x86_64
yum -y remove mysql-community-common-5.7.19-1.el7.x86_64
yum -y remove mysql-community-libs-compat-5.7.19-1.el7.x86_64
yum -y remove mysql57-community-release-el7-11.noarch
yum -y remove mysql-community-server-5.7.19-1.el7.x86_64

3:删除MySQL对应的文件夹

检查各个MySQL文件夹是否清理删除干净。

[root@DB-Server init.d]# whereis mysql
mysql:
[root@DB-Server init.d]# find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
[root@DB-Server init.d]# rm -rf /var/lib/mysql
[root@DB-Server init.d]# rm -rf /var/lib/mysql/mysql
[root@DB-Server init.d]# rm -rf /usr/lib64/mysql

4:确认MySQL是否卸载删除

[root@DB-Server init.d]# rpm -qa | grep -i mysql


5:重新安装MySQL5.6版本,主要参考 (略写,主要参考以下链接)

http://blog.csdn.net/huhuhuemail/article/details/77498891

shell> wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm shell> yum mysql57-community-release-el7-11.noarch.rpm  
  1. 这步如果报错:已加载插件:fastestmirror, langpacks
  2. 没有该命令:mysql57-community-release-el7-11.noarch.rpm。请使用 /usr/bin/yum --help
改用以下命令:
  1. yum localinstall mysql57-community-release-el7-11.noarch.rpm
  1. shell> yum repolist enabled | grep "mysql.*-community.*"
  1. shell> yum install mysql-community-server
  1. 修改mysql配置文件
启动MySQL服务






蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

截屏2021-05-13 上午11.41.03.png


转自:csdn 

分享此文一切功德,皆悉回向给文章原作者及众读者.

免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


mysql下载哪个centos_Centos7安装Mysql

前端达人

为什么要写这篇文章,因为现在在网上找的资料基本都是错误的,或者有错误,看着不爽。

在百度上搜 centos7 mysql  错的最离谱的就是这篇http://jingyan.baidu.com/article/ce436649fec8533773afd385.html    照着装了半天装了是mariadb

后来找了一些文章,发现基本都过时了。

因为直接yum install mysql 是装不上mysql的!!   而是装上了mariadb !   那就是因为默认的仓库里就是mariadb的包

那yum这么好的工具用不了就?? 当然有解决办法,我在官网上找到一篇文章叫做“A Quick Guide to Using the MySQL Yum Repository“  就是教我们如何用yum工具安装mysql的

首先 将mysql加到yum仓库中   (我这的命令都是centos7的,其他liunx平台用啥命令,你们自己搞定哈)

shell >  wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

shell >  rpm -ivh mysql-community-release-el7-5.noarch.rpm

然后再在命令行里输入

shell >  yum repolist all | grep mysql

结果:

mysql-connectors-community/x86_64 MySQL Connectors Community enabled: 14

mysql-connectors-community-source MySQL Connectors Community - So disabled

mysql-tools-community/x86_64 MySQL Tools Community enabled: 19

mysql-tools-community-source MySQL Tools Community - Source disabled

mysql55-community/x86_64 MySQL 5.5 Community Server disabled

mysql55-community-source MySQL 5.5 Community Server - So disabled

mysql56-community/x86_64 MySQL 5.6 Community Server enabled: 154

mysql56-community-source MySQL 5.6 Community Server - So disabled

mysql57-community-dmr/x86_64 MySQL 5.7 Community Server Deve disabled

mysql57-community-dmr-source MySQL 5.7 Community Server Deve disabled

一堆disabled,只看enable的,可以输入命令

shell >  yum repolist enabled | grep mysql

结果:

mysql-connectors-community/x86_64 MySQL Connectors Community 14

mysql-tools-community/x86_64 MySQL Tools Community 19

mysql56-community/x86_64 MySQL 5.6 Community Server 154

这里再多数一句,可以看到先在mysql5.6 是可用的,可我就想装现在最新版的5.7可咋办?   是有办法的。

需要修改文件,执行以下命令

shell > vi  /etc/yum.repos.d/mysql-community.repo

会看到

[mysql-connectors-community]

name=MySQL Connectors Community

baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-community]

name=MySQL Tools Community

baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.5

[mysql55-community]

name=MySQL 5.5 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/

enabled=0

gpgcheck=1

gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.6

[mysql56-community]

name=MySQL 5.6 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Note: MySQL 5.7 is currently in development. For use at your own risk.

# Please read with sub pages: https://dev.mysql.com/doc/relnotes/mysql/5.7/en/

[mysql57-community-dmr]

name=MySQL 5.7 Community Server Development Milestone Release

baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/

enabled=0

gpgcheck=1

gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

我们只需要把5.7的enabled 改成1  把5.6的enabled改成0 就行了。 我装啥版本无所谓,这块我没有亲自去试过,直接安装默认版本。

上边所有的工作都做完了,我们终于可以用我们最喜欢的yum来安装了

shell >  yum install mysql-community-server

安装过程省略,一路按y

成功之后,启动mysql

shell > service mysqld start

查看mysql 的状态

shell > service mysqld status

现在还需设置root的密码,删除匿名用户等一些设置,我看其他文章写的很复杂,其实有一个简单的命令

shell > mysql_secure_installation

初始密码为空,直接按回车键,然后输入你想设置的密码,其他的根据你自己的需求,y或者n

that is all

如果有错误,请及时联系,互相学习,互相进步,谢谢。





蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

截屏2021-05-13 上午11.41.03.png


转自:csdn 

分享此文一切功德,皆悉回向给文章原作者及众读者.

免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务



mysql导入sql文件出错的一种解决方法

前端达人

 在一个工程中数据库往往要分为实际运用数据库和测试数据库,最直接的方法当然是从源数据库中导出.sql文件再导入到本地的数据库中,我这的实例是原有一个项目数据库在服务器上现在想导出一份到本地做测试用,工程中用的是mysql-connector-java-5.1.13-bin.jar,而我现有的mysql数据库是

mysql-connector-java-5.1.6-bin.jar不知道是否是版本不一,在本地使用navicat for mysql可以连接到服务器数据库,但是从服务器数据库导出的.sql文件后再导入到本地的数据库中总是出现错误:

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ****
[Err] /*

    一、在网上找了很多方法都无法解决,无意中看到一个mysql数据同步的方法:

 1>在本地建一个与数据库同名的数据库

 2>选择navicat中连接服务器的数据库,在菜单栏选择工具-->数据传输


  3>在弹出的的窗口中“源”部分就是你要导出的源数据库,“目标”就是本地的数据库,点击左下角全选后,再点击开始按钮


     点击确定


    点击关闭




     再来查看一下本地数据库,是不是数据和结构都已经导入到本地数据库中了呢。

    二、从备份中导出.sql再导入到本地数据库中

    1>在连接服务器中的数据库上新建备份,选中要备份的数据库-->点击菜单栏上的备份-->新建备份


    2>选择备份文件提取SQL






这样我们就得到了备份转储的.sql文件,再将这个.sql文件导入到本地的数据库中,结果...就不再提示有错误了,

果真是菜鸟,要学的还很多


蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

截屏2021-05-13 上午11.41.03.png


转自:csdn 

分享此文一切功德,皆悉回向给文章原作者及众读者.

免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


app界面赏析+图标分享 ——— 北京蓝蓝设计 移动端UI设计资源分享(二十八)

前端达人

App界面设计对于设计师而言一直是盛久不衰的话题,尤其是如今越来越多的流量转移到了移动平台,使得更多的UI设计师涌入移动端领域,甚至出现了市场饱和的言论,对于从事移动端的UI设计师来讲,充满压力的同时又面临无限机遇,唯有不断的学习才能滋生出源源不断的设计灵感,站稳脚跟。

摹客想在这方面给各位设计师朋友做点什么,除了提供简单好用的设计工具,我们也整理了非常多的优秀设计案例,希望可以对设计师朋友有借鉴意义。这将会是一个系列的专题,我们以月为单位,整理了国内外设计师的优秀APP界面设计案例,我们是搬运工,更是好设计的传达者,希望你会喜欢。

接下来为大家分享精美的app UI设计案例:


WechatIMG2101.jpegWechatIMG2102.jpegWechatIMG2103.jpegWechatIMG2104.jpegWechatIMG2105.jpegWechatIMG2106.jpegWechatIMG2114.jpegWechatIMG2112.jpegWechatIMG2111.jpegWechatIMG2110.jpegWechatIMG2109.jpegWechatIMG2107.jpegWechatIMG2115.jpegWechatIMG2116.jpegWechatIMG2117.jpegWechatIMG2118.jpegWechatIMG2119.jpeg














--手机appUI设计--

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服



  更多精彩文章:

      手机appUI界面设计赏析(一)

       手机appUI界面设计赏析(二)

       手机appUI界面设计赏析(三)

       手机appUI界面设计赏析(四)

       手机appUI界面设计赏析(五)

       手机appUI界面设计赏析(六)

       手机appUI界面设计赏析(七)

       手机appUI界面设计赏析(八)

       手机appUI界面设计赏析(九)

        手机appUI界面设计赏析(十)

       手机appUI界面设计赏析(十一)

      手机appUI界面设计赏析(十二)

      手机appUI界面设计赏析(十三)

      手机appUI界面设计赏析(十四)

      手机appUI界面设计赏析(十五)

      手机appUI界面设计赏析(十六)

      手机appUI界面设计赏析(十七)

      手机appUI界面设计赏析(十八)

      手机appUI界面设计赏析(十九)

      手机appUI界面设计赏析(二十)

      手机appUI界面设计赏析(二十一)

     手机appUI界面设计赏析(二十二)

     手机appUI界面设计赏析(二十三)

     手机appUI界面设计赏析(二十四)

     手机appUI界面设计赏析(二十五)

centos7重启php环境

前端达人

apache
启动
systemctl start httpd
停止
systemctl stop httpd
重启
systemctl restart httpd
或者

service httpd stop

service httpd start

service httpd restart


mysql
启动
systemctl start mysqld
停止
systemctl stop mysqld
重启
systemctl restart mysqld

或者

service mysqld stop

service mysqld start

service mysqld restart



php-fpm
启动
systemctl start php-fpm
停止
systemctl stop php-fpm
重启
systemctl restart php-fpm


nginx
启动
systemctl start nginx
停止
systemctl stop nginx
重启
systemctl restart nginx

或者

service nginx stop
service nginx start
service nginx restart

开机自启

chkconfig httpd on

chkconfig mysqld on
 

 

一、MySQL启动方式

1

2

3

4

5

1、使用 service 启动:service mysqld start

 

2、使用 mysqld 脚本启动:/etc/init.d/mysqld start

 

3、使用 safe_mysqld 启动:safe_mysqld&

二、MySQL停止

1

2

3

4

5

1、使用 service 启动:   service mysqld stop

 

2、使用 mysqld 脚本启动:/etc/init.d/mysqld stop

 

3、mysqladmin shutdown

三、MySQL重启

1

2

3

1、使用 service 启动:service mysqld restart

 

2、使用 mysqld 脚本启动:/etc/init.d/mysqld restart

四、强制关闭

以上方法都无效的时候,可以通过强行命令:“killall mysql”来关闭MySQL,但是不建议用这样的方式,因为这种野蛮的方法会强行终止MySQL数据库服务,有可能导致表损坏……所以自己掂量着用。

Windows下重启MySQL服务,对于没装mysql图形管理端的用户来说启动和停止mysql服务:
…\…\bin>net stop mysql
…\…\bin>net start mysql

 

 

卸载PHP

yum remove php
yum remove php*
yum remove php-*
yum remove php7
yum remove php70
yum remove php7.0
yum remove php-common
这才是苦大仇深卸载个干干净净= w

 

 

Centos下Yum安装PHP5.5,5.6,7.0

默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案:

1.检查当前安装的PHP包

yum list installed | grep php

如果有安装的PHP包,先删除他们

 yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64

2.Centos 5.X

  rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
  CentOs 6.x
  rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
  CentOs 7.X
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

如果想删除上面安装的包,重新安装
rpm -qa | grep webstatic
rpm -e  上面搜索到的包即可

3.运行yum install

  yum install php55w.x86_64 php55w-cli.x86_64 php55w-common.x86_64 php55w-gd.x86_64 php55w-ldap.x86_64 php55w-mbstring.x86_64 php55w-mcrypt.x86_64 php55w-mysql.x86_64 php55w-pdo.x86_64
 

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64


注:如果想升级到5.6把上面的55w换成56w就可以了。

yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64
4.安装PHP FPM

yum install php55w-fpm 
yum install php56w-fpm 
yum install php70w-fpm
注:如果想升级到5.6把上面的55w换成56w就可以了。

nginx重启不了



蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

截屏2021-05-13 上午11.41.03.png


转自:csdn 

分享此文一切功德,皆悉回向给文章原作者及众读者.

免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档