python给js变量赋值_python 之 前端开发( JavaScript变量、数据类型、内置对象、运算符、流程控制、函数)...

11.4 JavaScript

11.41 变量

1、声明变量的语法

//1. 先声明后定义

var name; //声明变量时无需指定类型,变量name可以接受任意类型

name= "egon";

​//2. 声明立刻定义

var age = 18;

2、变量名命名规范

1、由字母、数字、下划线、$ 组成,但是不能数字开头,也不能纯数字

2、严格区分大小写

3、不能包含关键字和保留字(以后升级版本要用的关键字)。

如:

abstract、boolean、byte、char、class、const、debugger、double、enum、export、extends、final、float、goto

implements、import、int、interface、long、native、package、private、protected、public、short、static、super、synchronized、throws、transient、volatile

4、推荐驼峰命名法:有多个有意义的单词组成名称的时候,第一个单词的首字母小写,其余的单词首字母写

5、匈牙利命名:就是根据数据类型单词的的首字符作为前缀

3、ES6中let

ES6之前js没有块级作用域,ES6新增了let命令,用于声明变量(声明的变量属于块级作用域),流程控制语句的{}就是块级作用域。其用法类似于var,但是所声明的变量只在let命令所在的代码块内有效。例如:for循环的计数器就很适合使用let命令

for(let i=1;i<=5;i++){

console.log(i);

}//1 2 3 4 5

4、常量

ES6新增const用来声明常量。一旦声明,其值就不能改变。

const PI = 3.1415926;

PI=3 //TypeError: "PI" is read-only

11.42 数据类型

11.421 数值(Number)

JavaScript不区分整型和浮点型,就只有一种数字类型,即number

var x = 3;var y = 3.1;var z = 13e5;var m = 13e-5;var n = NaN; //typeof n结果"number"//四舍五入

var num=1.3456num.toFixed(2) //"1.35"

​//字符串类型转成数字

parseInt("123") //返回123

parseInt("ABC") //返回NaN NaN属性是代表非数字值的特殊值,该属性用于指示某个值不是数字。

console.log(parseInt("18林海峰")); //18 带有自动净化的功能;只保留字符串最开头的数字,后面的中文自动消失

console.log(parseInt("林海峰18")); //NaN 只去末尾的中文,不会去开头的

parseInt("123.456") //返回123

parseFloat("123.456") //返回123.456 字符串中的数字转浮点

var a = parseInt("1.3") + parseInt("2.6"); //a=3 自动带有截断小数的功能:取整,不四舍五入

var a = parseFloat("1.3") + parseFloat("2.6"); //a=3.9

​//数字类型转成字符串

var x=10;var y='20';var z=x+y; //z='1020'

typeof z; //String

​var m=123;var n=String(m)//'123'

​var a=123;var b=a.toString()//'123'

11.422 字符串(String)

var a = "Hello";var b = "world";var c = a +b;

console.log(c);//得到Helloworld

常用方法:

方法说明

.length

返回长度

.trim()

移除空白

.trimLeft()

移除左边的空白

.trimRight()

移除右边的空白

.charAt(n)

返回第n个字符

.concat(value, ...)

拼接,拼接字符串通常使用“+”号

.indexOf(substring, start)

子序列位置

.substring(from, to)

根据索引获取子序列

.slice(start, end)

切片

.toLowerCase()

小写

.toUpperCase()

大写

.split(',', 2)

根据逗号分割,但只显示前两个

substirng()与silce()的区别:

substirng()的特点:

如果 start>stop ,start和stop将被交换

如果参数是负数或者不是数字,将会被0替换

silce()的特点:

如果 start>stop 不会交换两者

如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)

如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)

补充:

ES6中引入了模板字符串:模板字符串(template string)是增强版的字符串,用反引号(`)标识,它的用途为

1、完全可以当做普通字符串使用var msg =`my name is egon`2、也可以用来定义多行字符串var info =`

name:egon

age:18sex:male

`3、并且可以在字符串中嵌入变量var name = "egon";var age = 18;var msg = `my name is ${name}, my age is ${age}`; //"my name is egon, my age is 18"

注意:

如果模板字符串中需要使用反引号,则在其前面要用反斜杠转义

11.423 布尔值

var a = true;var b = false;//布尔值为false的数据类型

Boolean('')

Boolean(0)

Boolean(null)

Boolean(undefined)

Boolean(NaN)

​//其余数据类型的布尔值均为true

Boolean([])

Boolean(123)

null 和 undefined :

null:表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;undefined:表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。

11.43 内置对象

11.431 数组对象Array

数组对象的作用是:使用单独的变量名来存储一系列的值。类似于Python中的列表。

var x = ["egon", "hello"];

console.log(x[1]); //输出"hello"

常用方法:

方法说明

.length

数组的大小

.push(ele)

尾部追加元素

.pop()

删除尾部的元素

.unshift(ele)

头部插入元素

.shift()

头部移除元素

.slice(start, end)

切片

.reverse()

反转

.join(seq)

将数组元素连接成字符串

.concat(val, ...)

连接数组

.sort()

排序

.forEach()

将数组的每个元素传递给回调函数

.splice(1,2,"新的值")

删除元素,并向数组添加新元素。

.map()

返回一个数组元素调用函数处理后的值的新数组

提供比较函数进行排序,该函数应该具有两个参数 a 和 b,接收传入的a和b,执行函数体代码,然后返回一个值用于说明a和b的大小

返回值 < 0 :代表a小于b

返回值 =0 : 代表a等于b

返回值 > 0 :代表a大于b

functionsortNumber(a,b){return a -b

}var arr = [123,9,1211,11]

arr.sort(sortNumber)//[9, 11, 123, 1211]

遍历数组中的元素:

var arr = [11, 22, 33, 44];for (var i=0;i

console.log(arr[i]);

}//11 22 33 44

forEach() :

语法:forEach( function ( 当前元素, 当前元素索引, 当前元素所属数组arr), thisValue)

var arr=['aa','bb','cc','dd','ee']

arr.forEach(function(v,i,arr){

console.log(v,i,arr);

console.log(this[0]);

},"hello")//aa 0 ["aa", "bb", "cc", "dd", "ee"] h//bb 1 ["aa", "bb", "cc", "dd", "ee"] h//cc 2 ["aa", "bb", "cc", "dd", "ee"] h//dd 3 ["aa", "bb", "cc", "dd", "ee"] h//ee 4 ["aa", "bb", "cc", "dd", "ee"] h

splice() :

语法:splice ( 起始元素索引 , 删除的个数, 添加的新元素)

var arr=['aa','bb','cc','dd','ee']

arr.splice(1,3,'xxxx') //删除‘bb’,‘cc’,’dd‘这三个值,然后插入’xxxx‘

arr //["aa", "xxxx", "ee"]

map() :

语法:map(function ( 当前元素, 当前元素索引, 当前元素所属数组arr), thisValue)

//字符串反转

var str = '12345';

Array.prototype.map.call(str,function(x) { //同时利用了call()方法

returnx;

}).reverse().join(''); //"54321"

11.432 Date日期对象

创建日期对象只有构造函数一种方式,使用new关键字

//方法1:不指定参数

var d1 = newDate();

console.log(d1.toLocaleString());//2020/8/9 下午8:24:06

​//方法2:参数为日期字符串

var d2 = new Date("2018/01/27 11:12:13");

console.log(d2.toLocaleString());//2018/1/27 上午11:12:13

​var d3 = new Date("01/27/18 11:12:13"); //月/日/年 时分秒

console.log(d3.toLocaleString()); //2018/1/27 上午11:12:13

​//方法3:参数为毫秒数

var d4 = new Date(7000);

console.log(d4.toLocaleString());//1970/1/1 上午8:00:07

console.log(d4.toUTCString()); //Thu, 01 Jan 1970 00:00:07 GMT

​//方法4:参数为:年,月,日,时,分,秒,毫秒

var d5 = new Date(2018,1,27,11,12,13,700);

console.log(d5.toLocaleString());//毫秒并不直接显示 // 2018/2/27 上午11:12:13

常用方法:

方法含义

getDate()

根据本地时间返回指定日期对象的月份中的第几天(1-31)

getMonth()

根据本地时间返回指定日期对象的月份(0-11)

getFullYear()

根据本地时间返回指定日期对象的年份(四位数年份时返回四位数字)

getDay()

根据本地时间返回指定日期对象的星期中的第几天(0-6)

getHours()

根据本地时间返回指定日期对象的小时(0-23)

getMinutes()

根据本地时间返回指定日期对象的分钟(0-59)

getSeconds()

根据本地时间返回指定日期对象的秒数(0-59)

getMilliseconds()

根据本地时间返回指定日期对象的获取毫秒

getTime()

返回累计毫秒数(从1970/1/1午夜)

编写代码,将当前日期按“2017-12-27 11:11 星期三”格式输出:

const WEEKMAP ={0: "星期日",1: "星期一",2: "星期二",3: "星期三",4: "星期四",5: "星期五",6: "星期六",

};

​functionshowTime() {var d1 = newDate();var year =d1.getFullYear();var month = d1.getMonth() + 1;var day =d1.getDate();var hour =d1.getHours();var minute = d1.getMinutes() < 10 ? "0"+d1.getMinutes() :d1.getMinutes();var week = WEEKMAP[d1.getDay()]; //0~6的星期

var dateStr =`

${year}-${month}-${day} ${hour}:${minute} ${week}

`;

console.log(dateStr)

}

showTime();//2020-8-9 20:37 星期五

View Code

11.433 Math对象

方法含义

Math.floor()

向下取整,如5.1取整为5

Math.ceil()

向上取整,如5.1取整为6

Math.max(a,b)

求a和b中的最大值

Math.min(a,b)

求a和b中的最小值

Math.random()

随机数,默认0-1之间的随机数,若想求min~max之间的数,公式为:min+Math.random()*(max-min)

11.434 JSON对象

//对象转成JSON字符串

var obj2={"name":"egon","age":18};

str2=JSON.stringify(obj2); //"{"name":"egon","age":18}"

​//JSON格式的字符串转成对象

var str1='{"name":"egon","age":18}';var obj1=JSON.parse(str1);

console.log(obj1.name);//'egon'

console.log(obj1["name"]); //'egon'

11.435 RegExp对象

1. 创建正则对象的方式1

参数1 正则表达式

参数2 匹配模式:常用g(全局匹配;找到所有匹配,而不是在第一个匹配后停止)和i(忽略大小写)var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$"); //匹配用户名只能是英文字母、数字和_

reg1.test("egon_123") //true //首字母必须是英文字母,长度最短不能少于6位 最长不能超过12位。

注意:正则放到引号内,{}内的逗号后面不要加空格2. 创建正则对象的方式2var reg2 = /^[a-zA-Z][a-zA-Z0-9_]{5,11}$/; //不要加引号

reg2.test("egon_123") //true

3. String对象与正则结合的4个方法var s1="hello world";

s1.match(/l/g) //符合正则的内容["l", "l", "l"]

s1.search(/h/g) //符合正则的内容的第一个索引0

s1.split(/ /) // ["hello", "world"],默认全部切割

s1.replace(/l/g,'L') //"heLLo worLd"

4. 匹配模式g与ivar s2="name:Egon age:18"s2.replace(/e/,"赢") //"nam赢:Egon age:18"

s2.replace(/e/g,"赢") //"nam赢:Egon ag赢:18"

s2.replace(/e/gi,"赢") //"nam赢:赢gon ag赢:18"

5.注意1:

1、如果regExpObject带有全局标志g,test()函数不是从字符串的开头开始查找,而是从属性regExpObject.lastIndex所指定的索引处开始查找。2、该属性值默认为0,所以第一次仍然是从字符串的开头查找。3、当找到一个匹配时,test()函数会将regExpObject.lastIndex的值改为字符串中本次匹配内容的最后一个字符的下一个索引位置。4、当再次执行test()函数时,将会从该索引位置处开始查找,从而找到下一个匹配。5、因此,当我们使用test()函数执行了一次匹配之后,如果想要重新使用test()函数从头开始查找,则需要手动将regExpObject.lastIndex的值重置为 0。6、如果test()函数再也找不到可以匹配的文本时,该函数会自动把regExpObject.lastIndex属性重置为 0。var reg3 = /egon/g;

reg3.lastIndex0reg3.test("egon") //true,匹配成功

truereg3.lastIndex//匹配成功reg3.lasIndex=4

4reg3.test("egon") //从4的位置开始匹配,本次匹配失败

falsereg3.lastIndex//匹配失败,lastIndex归为0

0reg3.test("egon") //再次匹配成功

true

6.注意2:

当我们不加参数调用RegExpObj.test()方法时, 相当于执行RegExpObj.test("undefined"), 且/undefined/.test()默认返回true。var reg4 = /^undefined$/;

reg4.test();//返回true

reg4.test(undefined); //返回true

reg4.test("undefined"); //返回true

11.44 运算符

//算数运算符:

+ - * / % ++ --

//比较运算符:

> >= < <= != == === !==

//逻辑运算符

&& || !

//赋值运算符

= += -= *= /=

11.45 流程控制

if...else :

var age=18;if(age > 18){

console.log('too old');

}else if(age == 18){

console.log('花姑娘,吆西');

}else{

console.log('too young');

}//花姑娘,吆西

switch :

switch中的case子句通常都会加break语句,否则程序会继续执行后续case中的语句

var day = newDate().getDay();switch(day) {case 0:

console.log("星期天,出去浪");break;case 6:

console.log("星期六,也出去浪");break;default:

console.log("工作日,正常上班")

}//工作日,正常上班

while:

let i=0;

undefinedwhile (i<=3){

console.log(i);

i++;

}

三元运算:

var x=1;var y=2;var z=x>y?x:y //2

11.46 函数

1、函数的定义与调用(与python类同)

//无参函数

functionf1() {

console.log("Hello world!");

};

f1();

​//有参数函数

functionf2(a, b) {

console.log(arguments);//内置的arguments对象

console.log(arguments.length);

console.log(arguments[0],arguments[1]);

console.log(a, b);

};

f2(10,20);

​//带返回值的函数

functionsum(a, b){return a +b;

}

sum(1, 2);

​//匿名函数

var sum = function(a, b){return a +b;

}

sum(1, 2);

​//立即执行函数

(function(a, b){return a +b;

})(1, 2);

注意:

函数只能返回一个值,如果要返回多个值,只能将其放在数组或对象中返回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java this关键字的使用

java this关键字的使用 /*** this关键字的使用*/ public class Student {//成员变量private int sno; //学号private String name; //姓名private String sex; //性别private double score; //分数//构造方法public Student(){}public Student(int sno,String nam…

MySQL随手笔记

MySQL随手笔记 1、char varchar 是字符的个数&#xff0c;不是字节的个数&#xff0c;可以使用binary&#xff0c;varbinary表 示定长和不定长的字节个数。2、int 宽度是显示宽度&#xff0c;如果超过&#xff0c;可以自动增大宽度&#xff0c;int 底层都是4个字节3、如何写入…

使用PE信息查看工具和Dependency Walker工具排查因为库版本不对导致程序启动报错的问题

目录 1、问题说明 2、问题分析思路 3、问题分析过程 3.1、使用Dependency Walker打开软件主程序&#xff0c;查看库与库的依赖关系&#xff0c;找出出问题的库 3.2、使用PE工具查看dll库的时间戳 3.3、解决办法 4、最后 VC常用功能开发汇总&#xff08;专栏文章列表&…

关联的两个字段度需要建立索引吗_索引那些事儿

最近的工作中进行了几个SQL优化,对索引也有了一些新的认识。 什么是索引?百度百科是这么说的: 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据…

MySQL添加、更新、删除数据

MySQL添加、更新、删除数据 1、查询数据 select * from student; 2、添加数据 insert into student values(1,"张三","男",23,1999-12-23,Java001,zhangsanqq.com); 可以添加两条相同的数据&#xff0c;因为没有创建相应的约束constraint insert into…

登陆 manager app显示不是私密链接_小米上线了一款靠指静脉识别开锁的私密箱,打造你的私人存储空间...

印象中的保险箱体积大、价格昂贵、开锁繁琐&#xff0c;一直都认为那是企业老板、成功人士的标配&#xff0c;对于普通家庭来说存在的价值、或实用性方面并不是很高。往常遇到长时间外出旅行&#xff0c;也会担心家里重要的证件、首饰等贵重物品的安全&#xff0c;老婆选择寄存…

MySQL修改、删除表的结构

MySQL修改、删除表的结构 1、增加一列 alter table student add score double(3,1); 说明 double&#xff08;3,1&#xff09;指数据是三位&#xff0c;小数部分占一位&#xff0c;整数部分占两位&#xff0c;默认最后一列 alter table student add score double (5,2) fi…

python优化网站_[练习] 用PYTHON来优化网站中的图片

我到公司以来&#xff0c;第一次加班&#xff0c;哇&#xff0c;加一晚上加一上午&#xff0c;现在还没下班的迹象&#xff0c;555,困。对于网站中的一些关键的页面&#xff0c;多重缓存、静态化、程序代码优化……之外&#xff0c;为了提高用户打开页面的速度&#xff0c;图片…

MySQL表级完整性约束

MySQL表级完整性约束 为防止不符合规范的数据存入数据库&#xff0c;在用户对数据进行插入、修改、删除等操作时&#xff0c;MySQL提供 了一种机制来检查数据库是否满足规定的条件&#xff0c;以保证数据库中数据的准确性和一致性&#xff0c;这种机制 就是完整性约束。MySQL中…

php redis 投票_高性能Redis服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了&#xff0c;我们经常在业务中用其存储用户登陆态(Session存储)&#xff0c;加速一些热数据的查询(相比较mysql而言&#xff0c;速度有数量级的提升)&#xff0c;做简单的消息队列(LPUSH和BRPOP)、订阅发…

MySQL表的非外键约束

MySQL表的非外键约束 /* 建立一张用来存储学生信息的表 字段包含学号、姓名、性别&#xff0c;年龄、入学日期、班级&#xff0c;email等信息 学号是主键 不能为空 ? 唯一 姓名不能为空 性别默认值是男 &#xff0c;只能取值男、女 年龄&#xff1a;18---50 Email唯一 *…

go调用python3_在python3中使用google的protobuf以及gRPC-Go语言中文社区

下载源代码&#xff1a;地址安装proto#下载&#xff1a;protoc-3.9.1-linux-x86_64.zipunzip protoc-3.9.1-linux-x86_64.zip -d protoc-3.9.1-linux-x86_64 # 解压mv protoc-3.9.1-linux-x86_64 /usr/local/protoc # 移动ln -s /usr/local/protoc/bin/protoc /usr/bin/protoc …

static变量 java

static 变量java static 是java中的一个关键字&#xff0c;单词本身是静态的含义。一个类的成员包含变量、方法、构造方法 、代码块和内部类&#xff0c;static可以修饰除了构造方法以外的所有成员使用static修饰的成员称为静态成员&#xff0c;是属于某个类的&#xff1b;而不…

java static方法

static方法 1、static方法的作用访问static变量和static方法2、static方法的调用方式通过类名调用、通过对象名来访问3、不可以静态方法中不可以访问非静态变量 静态方法中不可以访问非静态方法 静态方法中不可以访问this原因&#xff1a;加载类的时候就加载静态变量和静态方法…

保存验证码的方法_selenium自动化测试:6.验证码处理

0.前言如果可以的话&#xff0c;请先关注&#xff08;专栏和账号&#xff09;&#xff0c;然后点赞和收藏&#xff0c;最后学习和进步。你的支持是我继续写下去的最大动力&#xff0c;个人定当倾囊而送&#xff0c;不负众望。谢谢&#xff01;&#xff01;&#xff01;1.前提基…

非root用户组启动sftp_如何在 Debian 10 中配置 Chroot 环境的 SFTP 服务 | Linux 中国

SFTP 是最常用的用于通过 ssh 将文件从本地系统安全地传输到远程服务器的方法https://linux.cn/article-12186-1.html作者&#xff1a;Pradeep Kumar译者&#xff1a;郑SFTP 意思是“安全文件传输协议(Secure File Transfer Protocol)” 或 “SSH 文件传输协议(SSH File Transf…

java权限修饰符

java权限修饰符 java一共有四种访问控制符1、private 表示私有&#xff0c;只有自己类能访问2、default 表示没有修饰符修饰&#xff0c;只有同一个报的类能访问3、protected 表示可以被同一个包的类以及其他包中的子类访问4、public 表示可以被该项目的所有包中的所有类访问类…

python增删改查csv文件_【练习】Python第四次:实现对文件的增删改查

import os #os包含改名和删除文件函数def file_handler(backend_data,res None,typefetch):if type fetch:with open(haproxy.conf, r) as read_f:tag False #找到标志ret []for read_line inread_f:if read_line.strip() backend_data: #匹配到数据tag Truecontinueif tag …

java封装练习

java封装练习 /*** 以面向对象的思想&#xff0c;编写自定义类描述图书信息。设定属性包括&#xff1a;书名、作者、出版社名、价格* 方法包括&#xff1a;信息介绍** 要求&#xff1a;* 1、设置属性的私有访问权限&#xff0c;通过公有的get、set方法实现对属性的访问* 2、限…

接口自动化测试_Python自动化测试学习路线之接口自动化测试「模块四」

01.接口自动化测试概念(接口测试的定义与意义;接口测试的实现方式和接口自动化的实现流程)02.HTTP协议(通信协议原理;HTTP与HTTP协议详解(请求,响应,请求方法&#xff0c;状态码)、session、cookie、token鉴权)03.JSON数据格式(JSON与XML的比较;JSON的语法规则;JSON的数据类型)…