标签:func iter end 连接符 mod ++i UNC 比较 indexof
? javascript创造者netscape 公司 将JavaScript 提交给国际化标准组织ECMA,希望这门语言能够成为国际标准,所以EMCA 给 js 制定了标准,所以叫ECMAScript。
ES6
(ECMAScript 6) - 最新的版本,用的最多的时ES5
类似于python2 和 python3的关系
ECMAScript 描述了JavaScript 语言本身的相关内容
JS:
内部引入
< script>
js
< /script>
//f12建打开浏览器的调试窗口,然后在console这个调试台就能看到这个内容了
外部引入
script src =‘文件路径’
//是单行注释
/* 是多行注释*/
尽量不要使用/* / 使用// , 到了正则表达式那里 与正则式子里的 / 冲突 —— 《JS语言精粹》
JS 的变量名可以使用**_,数字,字母** $组成, 不能以数字开头 $不提倡 不通用
var 声明变量名
var name = "Alex"; var age =18;
ES6 之后新加let 命令声明变量,所声明的变量只在let命令所在的代码块内有效,但是不能重复赋值
ES6 新增 const 用来声明敞亮。 一旦声明, 其值就不能改变。---为了定义一个固定的常量。
const PI = 3.1415;
推荐命名使用驼峰体 首字母大写 命名不要用保留字
(和python一样拥有动态数据类型)
动态数据类型:变量赋完值 才知道类型
静态数据类型: 如C, 创建变量时,要指定变量的类型
var x = 1 ; // 此时x是数字 var x = 'aaa'; // 此时是字符串
数值 (Number)不分整型浮点型 统称
NaN : 转换不了 ----not a number(typeof number....⊙﹏⊙)
parseInt('123') 字符串转数字
parseInt('123a') 提出123 不报错
parseInt('a1') NaN
parseInt('aa')
parseInt('1a2a') 1
.length //不加括号的是属性 返回长度
.trim() // 移除空白
.trimLeft() //移除左边的空白
.trimRight() //移除右边的空白
.charAt(n) //返回第n个字符 通过索引取元素
//超过最大值返回''空字符串
.concat(value,..) // s1= 'hello'; s.concat('xx') = helloxx 拼接
.indexOf(substring, start) //这个start 是从索引几开始找,没有返回-1 //子序列位置
.slice(start,end) //切片 左包右不包
.toUpperCase(); //大写
.toLowerCase() //小写
.split(); // 分割
.split(delimiter,limit) // limit 加参数个数 返回个数
var s2='你好';
var s3= `20期, ${s2}`; //格式化
运行之前 有个提示 都是undefined 运行完了就好了
null 和 undefined
null 啥也没有 打印的时候是fault
undefined 定义变量的时候就是没调用的时候的状态
var a = new String('xx');
typeof a // 类型是object而不是 string 类型
// 两种定义方法
var l1 = [11,22];
typeof l1; // "object"
var l2 = new Array([11,22]);
方法
.length 数组的大小
.push(ele) 尾部追加元素
.pop 获取尾部的元素
.unshift(ele) 头部插入元素
.shift() 头部移除元素
.slice(start,end) 切片
.reverse() //在原数组上改 反转
.join(seq) // a1.join('+'),seq 是连接符 将数组的每个元素传递
.contat(val,...) //连个数组合并,得到一个新数组,原数组不变 连接数组
l1 = [11,22,33,2,3]
l1 . sort() //[11, 13, 2, 2, 21] 首字母排列
function sortNumber(a,b){
return a - b
}
l1.sort(sortNumber) // 排序 sort 可以识别函数 小于零不变 >0 变位置 升序排列
?
?
l1.splice(1,2) 1,从哪删(索引) 2,删几个 3.删除位置替换新元素(可以多个) 删除元素,并向数组添加新元素
?
类似于python的字典 typeof d1 : "object"
可以不加 引号:
var d1 = {'name' : 'bb'}
var d2 = {name:'zneg' , age:'222'}
d2.age / d2["age"]
?
o = nuw Object() o.name ='xx';
var a = 10 ;
a++
11
if (a++ ==14) {console.log('a等于14')} else{console.log('a 不等于14')}
a = 10
if a == 11: print(a)
else:print(a)
a = 10 var c ='10' a==c : true
a+c = '1010' //相加是字符串
== 弱等于 不比较类型(好像等于 不用踩坑)
=== 强等于
a!=c false ....
&& || ! // and or 非(取反) !null 返回 true
= +-*/ =
1.if-else
var a = 10 ;
if (a>4){}
else{}
2.else-if
3.switch 切换
switch(day)
{
case 0:console.log('sunday'); break;
case 1: break;
case 2: break;
}
switch (++a){
case 1: console.log('1'); break;
case 2: console.log('这是2') ; break;
default :
console.log('这啥也不是'
);}
4. for 循环 i++和++i 一样的 因为最后执行
for (var i = 0 ; i<10 ; i++){
console.log(i);
}
4.2循环数组 方式1
l1 = ['aa' , 11, 'cc']
for (var i in l1){
console.log(i)
}
for (var i in l1){
console.log(i,l1[i]) //索引取值
}
方式2
l2 = ['aaa','bb','cc','ddd']
for (var i= 0 ; i< l2.length;i++)
{
console.log(i,l2[i])
}
4.3 循环自定义对象
var d= {aa:'xx',b:'ss',}
for (var i in d){
console.log(i)
}
//不能用.来取值
把 aa --->'aa'了
没法 d.i取值 显示未定义
d.aa 取值可以
4.4 while 循环(不要忘了自加 成死循环了)
var i = 0;
while(i<10){console.log(i); i++;}
4.5 三元运算符
var a = 1;
var b = 2 ;
var c = a > b ? a:b; //如果a>b 这个条件 取
python中:
a = 10
b = 11
c = a if a>b else b
?
function f1() {console.log('xx')}
function f1(a,b){return a+b}
不能返回多个
function f1(a,b){return a,b} // f1(2,3)---> 3
?
var num = function(a,b){console.log(a+b)}
num ? (a,b){console.log(a+b)}
typeof num "function"
num(1,2) 3
?
自执行函数
立即执行函数,页面加载到这里
(function () {
console.log('自执行函数')
})(); //括号里可以传参
var f = function(v){return v;}
等于 箭头函数
var f = v;
函数外的就是全局的
var city = 'beijing';
function Bar(){
var city = 'shanghai';
return Bar;
}
}
var ret = f():
console.log(ret)
闭包
函数内使用函数外定义的变量
var city = "BeiJing";
function f(){
var city = "ShangHai";
function inner(){
console.log(city);
}
return inner;
}
var ret = f();
ret(); ---> ShangHai
?
赋值 : 全局变量有 在函数里声明变量 之前打印无定义
?
不声明 可以打印
var age = 18;
function foo(){
console.log(age); //分析到这一步的时候,发现你下面有age变量声明,那么age变量就在AO对象上村上了,并且值为undefined,所以函数在执行的时候,还没有到age=22这步的时候,age=undefined
var age = 22; //如果没有这个变量声明,那么打印的结果应该是18
console.log(age);
}
foo(); // 问:执行foo()之后的结果是?
undefined
22
调用:
函数可以覆盖 变量不可以覆盖
先声明-词法分析 AO对象: age undesigned(变量) 成了 func(函数就成这个了)
后调用执行时 age 成了 22 第二三个 都成了
var age = 18;
function foo(){
console.log(age);
var age = 22;
console.log(age);
function age(){ //发现age这个函数名也是变量,将OA上的变量给替换了,那么函数在执行的时候,去OA上找,发现OA是个函数,然后执行到age=22的时候,age才被重新赋值
console.log("呵呵");
}
console.log(age);
}
foo(); // 执行后的结果是?
结果:
function age(){
console.log("呵呵");
}
22
22
//ES5 定义类 用person ES6 用class
封装属性
function Person(name)
{ this.name = name}
var p1 = new Person('tailiang')
p1.name // ---->太亮
封装方法
給类添加方法:原型链
Person.prototype.sum = function(a,b){return a+b};
//? (a,b){return a+b}
p1.sum(1,3)
//4
//方法1:不指定参数
var d1 = new Date(); //获取当前时间
console.log(d1.toLocaleString()); //当前时间日期的字符串表示
//方法2:参数为日期字符串
var d2 = new Date("2004/3/20 11:12");
console.log(d2.toLocaleString());
var d3 = new Date("04/03/20 11:12"); //月/日/年(可以写成04/03/2020)
console.log(d3.toLocaleString());
//方法3:参数为毫秒数,了解一下就行
var d3 = new Date(5000);
console.log(d3.toLocaleString());
console.log(d3.toUTCString());
//方法4:参数为年月日小时分钟秒毫秒
var d4 = new Date(2004,2,20,11,12,0,300);
console.log(d4.toLocaleString()); //毫秒并不直接显示
var d1 = new Date(); 默认当前时间
d1
d1.toLocaleString() 查看时间 标准的
var d = new Date();
//getDate() 获取日
//getDay () 获取星期 ,数字表示(0-6),周日数字是0
//getMonth () 获取月(0-11,0表示1月,依次类推)
//getFullYear () 获取完整年份
//getHours () 获取小时
//getMinutes () 获取分钟
//getSeconds () 获取秒
//getMilliseconds () 获取毫秒
//getTime () 返回累计毫秒数(从1970/1/1午夜),时间戳
js json java python
数据库里的数据 通过python 读出来 传给js 在前端展示出来
python 中有个json java 中有一个json js 有一个json对象 所有语言把自己的数据类型转换成 json
然后各自的语言就可以识别了 互相传输之后
比如 python 中有字典 js理由自定义对象 有相同的 但是也有不同 不能直接传输 不能识别
python ---> json ---> js----->自定义对象展示
以前会有 xml 传输 但是太笨重 所以,大部分用json
转换:
python
先从数据库里拿到了数据
import json
d1 = {'name':'yang'}
json.dumps(d1)
json
拿到json转化为自定义对象
反序列化
json.parse(str1)
序列化
json.stringify(obj1)
Math.abs(x) 返回数的绝对值。
math.------->~
~exp(x) 返回 e 的指数。
~floor(x) 小数部分进行直接舍去。
~log(x) 返回数的自然对数(底为e)。
~max(x,y) 返回 x 和 y 中的最高值。
~min(x,y) 返回 x 和 y 中的最低值。
~pow(x,y) 返回 x 的 y 次幂。
~random() 返回 0 ~ 1 之间的随机数。
~round(x) 把数四舍五入为最接近的整数。
~sin(x) 返回数的正弦。
~sqrt(x) 返回数的平方根。
~tan(x) 返回角的正切。
python 中 就不行 print(round(4.5))--->4
print(round(5.5)) ----->6 最接近的偶数
运算符:
算数运算符 +-*/ % ++ --
函数
function 函数名(参数,参数。。)
{
return xx 只能返回一个值,想返回多个用其他,数组,自定义对象
}
匿名函数
var 变量名= function(参数...){}
自执行函数
(function(参数...){xxxx})(实参...)
三元运算符
var a = 1
var b = 2
var c = a> b ? a: b
词法分析
箭头函数
var f = v => v; //有时会用到
面向对象
function Person(name ... 参数)
{this.name = name}
var p = new Person('chao'...)
p.name
封装方法
Person.prototype.sum = function(){}
p.sum ()
JSON
反序列化 JSON.parse(xxx)
序列化 JSON.Stringify(js的数据)
date
var d = new Date();
d.getDate();
Math
不用实例化对象
Math.floor(11111.1111)
Math.round(4.5) ------>5
标签:func iter end 连接符 mod ++i UNC 比较 indexof
原文地址:https://www.cnblogs.com/Doner/p/10821159.html