一,调试语句

二,JS的引入方式

三,变量的使用

四,基本的数据类型

4.1,基本数据类型转换

4.2,字符串的常用方法

五,复杂数据类型

5.1,Array(数组)及常用方法

六,流程控制( 逻辑与&&、逻辑或|| )

七,Math内置对象的方法

八,函数的使用

九,JavaScript中对象的创建方式

十,arguments的使用:(类似于python中的*args)

十一,Date类的使用

十二,JSON的序列化反序列化

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

一,调试语句

alert('alex');
console.log(123, 'alex');

typeof 打印对象的类型
isinstance 查看对象是否为某个类型

二,JS的引入方式

内接式:[可以写在HTML任何地方,建议写在body之后]
<script type="text/javascript"> </script>

外接式:
<script type="text/javascript" src="./js/index.js"> </script>

三,变量的使用

var a=100; 或者 var a; a=100;

四,基本的数据类型

1.number 2.string 3.boolean 4.null 5.undefined

查看数据类型 typeof 100
+号表示拼接字符串,类型不同会自动转换为string

1.number里5/0=Infinity表示无限大
2.单引号或双引号表示
3.true/false
4.null为空 对象类型为object
5.未定义的变量打印结果为undefined 类型也为undefined

4.1,基本数据类型转换

1.number<-->string:隐式转换 1+'2'=='12'

string与number互相转换
a=1234;String(a)或者a.toString()
Number('1234')==1234
Number('1234abcd')==NaN
解析整数或浮点数
parseInt('1234abcd')==1234
parseFloat(3.14kjdjdkf)==3.14
js中运算符的特殊情况:
'==' 比较值相等 '5'==5 为true
'===' 比较值和数据类型

'!=' 值不相等才为真
'!==' 值和类型有一个不等就为真

'++' '--' 自增自减 b=a++ 与 b=++a不同与c语言一样

4.2,字符串的常用方法

1.字符串也有str.length属性,可以通过str[0]='a'来改变
2.charAt() 返回指定索引位置的字符
3.concat() 返回字符串的值,表示两个或者多个字符串拼接
str1.concat(str1,str2,str3)
4.replace(a,b) 将字符串a替换成字符串b
5.indexof() 查找字符下标
6.slice(a,b) 从a-b切片,顾首不顾尾
7.substring(a,b) 从a-b切片,顾首不顾尾
8.split('a',count) 字符串按照'a'来分割,count是拿第几个。
9.toLowerCase() 、toUperCase() 转大写 转小写
10.num.toFixed(2); 四舍五入保留小数点2位
11.trim();首尾去空格

五,复杂数据类型

Function  类似 def
Object   类似  dict
Array  类似  list
String  类似  string
Date  类似  time模块

5.1,Array(数组)及常用方法

初始化 var a=['1','2','3']; 或
var a=new Array();a[0]='1';a[1]='2';a[2]='3';

知识网站:百度搜索"开发者网络"第一个链接,搜索框输入"array"查看文档
数组常用方法:

补:splice(index,len,[item]) 注释:该方法会改变原始数组。

splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值

index:数组开始下标 len: 替换/删除的长度 item:替换的值,删除操作的话 item为空

1.数组的合并
var a1=['1','2','3'];
var a2=['a','b','c'];
var new = a1.concat(a2)
new == ['1','2','3','a','b','c'];
2.数组转换为字符串
var a1=[1, 2, 37];
var b1=a1.toString();
b1==['1,2,37']
3.数组用指定的字符串连接,跟python的join一样
var a1=[1, 2, 37];
var b1=a1.join('|')
b1==['1|2|37']
4.查找元素下标(正向查找,反向查找)
var a1=[1, 2, 37, 45, 37, 22];
var index=a1.indexOf(37); // 2 正向查找
var index1=a1.lastIndexOf(37); //4 反向查找
找不到输出-1
5.数组的反转
var a1=['1','2','3'];
var r1=a1.reverse(); //['3','2','1']
会对原先的数组也进行反转 a1==['3','2','1']
两者是同一个对象的引用
6.数组的排序(按照26个英文字母排序)
var names=['b','c','a','f'];
var sot=names.sort(); // ['a','b','c','f']
7.移除第一个元素
var a1=[1,2,3,4]
var first=names.shift() //移除第一个元素,返回第一个元素
8.向数组开头添加一个或多个元素并返回新的长度
var a1=[1,2,3,4]
var last=a1.unshift('abc');
a1==['abc',1,2,3,4] last==5
9.向数组尾部添加一个或多个元素并返回新的长度
var a1=[1,2,3,4]
var last=a1.push('abc');
a1==[1,2,3,4,'abc'] last==5

10.从数组末尾删除一个元素,并返回被删除的元素值
var a1=[1,2,3,4]
var last=a1.pop();
a1==[1,2,3] last==4

六,流程控制( 逻辑与&&、逻辑或|| )

if(age>18){
  console.log('可以去会所了');
}

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

if(true){
  console.log('a');
}else if(false){
  console.log('b');
}else{
  console.log('c');
}

--------------------
var n=0;
while(n<10){
  console.log(n);
  ++n;
}

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

for(var i=0;i<10;i++){
  console.log(i);
}

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

for(var i=0;i<array.length;i++){
console.log(i; array[i]);
}
------------------------------
document.write('*'); //向页面上写入内容<body>标签里面
所有变量都挂到window上了
在console里面输入变量,可以直接联想出来
--------------------------------------

七,Math内置对象的方法

Math.ceil() //向上取整,分页时算页数可以用:例如Math.ceil(1.234)=2
Math.floor() //向下取整,例如Math.floor(1.234)=1
Math.max(2,5) //求两个数的最大值:5
Math.min(2,5) //求两个数的最小值:2
Math.random(); //取[0,1)之间的随机数
随机数案例:
[min,max)之间的随机数:min+Math.random()*(max-min);

八,函数的使用

1.普通函数
function add(x,y){
  return x+y;
}

alert(add(1,2));

2.匿名函数
var add = function(x,y){
  return x+y;
}

add(1,2);

九,JavaScript中对象的创建方式

创建对象方式一:使用Object或对象字面量创建对象(适用于只创建一个对象)
var person = new Object()
person.name='alex';
person.age=20
console.log(person);
对象字面量赋值和赋方法:注意与字典不同var person2={'name':'wu',  'age':20,  'fav':'fav'};
var person2={
  name:'wu',
  age:20
  fav:fav
}
var fav=function(){
  alert(this.name); //指当前对象
}
创建对象方式二:工厂模式创建对象
function createPerson(name,age){
  var o = new Object();
  o.name = name;
  o.age = age;
  return o;
}
var person1 = createPerson('alex',20);
var person2 = createPerson('alex',20);
var person3 = createPerson('alex',20);

person1 instanceof Person == false
person1 instanceof Object == true
创建对象方式三:构造函数模式创建对象,使用new关键字创建对象
构造函数与普通函数的区别是首字母大写
(希望创建的对象通过instanceof方法得到的是具体的对象而不是抽象类Object)
function Person(name,age){
  this.name=name;
  this.age=age;
  this.alertName=function(){
    alert(this.name);
  }
}
var person1=new Person('alex',20);

function Fruit(name,age){
  this.name=name;
  this.age=age;
  this.alertName=function(){
    alert(this.name);
  }
}
var fruit1=new Fruit('apple',12);
person1 instanceof Person == true
person1 instanceof Object == true
fruit1 instanceof Fruit == true
fruit1 instanceof Object == true
创建对象方式四:原型模式创建对象
(为了解决对象之间有共同的方法而出现的,重复的方法只写一次)
prototype它是当前类的父类
function Person(name,age){
  this.name=name;
  this.age=age;
}
Person.prototype.alertName=function(){
  alert(this.name); //this是调用这个方法的对象
};
var p1 = new Person('alex',20);
var p2 = new Person('alex2',30

p1.alertName();
p2.alertName();

不同的对象调用的是同一个方法(这个方法是继承来的)

十,arguments的使用:(类似于python中的*args)

function add(){
//arguments是伪数组,只有length和索引,可以遍历,类似于python中的*args
console.log(arguments); //输出:'alex','wu'
}
add('alex','wu')

十一,Date类的使用

var d1 = new Date(); //Wed Sep 05 2018 10:41:39 GMT+08
getDate() 返回月份中的第几天(1-31)
Date() 返回当天日期和时间
getMonth() 返回月份(0-11)
getFullYear() 返回年份(四位数)
getDay() 返回星期几(0-6)
getHours() 返回小时(0-23)
getMinutes() 返回分钟(0-59)
getSeconds() 返回秒(0-59)
console.log(d1.toLocalString()); 返回本地时间 2018/9/5 上午10:42:09

十二,JSON的序列化反序列化

一个对象:
var js = {
  "name":"alex",
  "pwd":"123"
}
很多对象数组
var jsv = [{"name":"alex","pwd":"123"},{"name":"wu","pwd":"455"}]

遍历json对象:
for(var k in js){
  console.log(k+','+js[k]);
}
遍历json数组:
for(var i in jsv){
  console.log(i+','+jsv[i].name+','+jsv[i].pwd)
}
序列化:
var jsonstr = JSON.stringify(js)

反序列化:
var json_obj = JSON.parse(jsonstr);

JS第一部分--ECMAScript5.0标准语法 (JS基础语法)的更多相关文章

  1. [Swift2.0系列]Defer/Guard 基础语法

    1.Defer Swift2.0中加入了defer新语法声明.defer译为延缓.推迟之意.那么在Swift2.0中它将被应用于什么位置呢?比如,读取某目录下的文件内容并处理数据,你需要首先定位到文件 ...

  2. python 全栈开发,Day89(sorted面试题,Pycharm配置支持vue语法,Vue基础语法,小清单练习)

    一.sorted面试题 面试题: [11, 33, 4, 2, 11, 4, 9, 2] 去重并保持原来的顺序 答案1: list1 = [11, 33, 4, 2, 11, 4, 9, 2] ret ...

  3. Python语法教程-基础语法01

    目录 1. Python应用 2. 在Linux中写python 3. Python基础语法 1. 注释 2. 变量定义及类型 3. 格式化输出 4. 用户输入 5. 运算符 6.数据转换 7. 判断 ...

  4. python语法_1基础语法概述

    http://www.runoob.com/python3 章节:教程.基础语法.数据类型.解释器.注释.运算符. 大纲 查看python版本 实现第一个python3.x程序,hello world ...

  5. xslt语法之---基础语法

    1. XSLT常用元素: 1.1 <xsl:template>:创建模板     Match属性的作用是使模板和XML元素相关联 <xsl:template match=" ...

  6. 07_Python语法示例(基础语法,文件操作,异常处理)

    1.写程序在终端输出图形 ######## # # # # ######## print("#" * 8) print("#" + " " ...

  7. python基础语法之基础语法规则以及设置

    1. 编码格式 在python3以上版本中,py文件默认采用UTF-8格式编码,所有的字符串都是unicode字符串.当然,我们也可以自己为源码文件指定不同的编码,以utf-8为例,相关代码如下所示: ...

  8. Scala语法01 - 基础语法

  9. 3.Scala语法01 - 基础语法

随机推荐

  1. redis 系列22 复制Replication (下)

    一. 复制环境准备 1.1 主库环境(172.168.18.201) 环境 说明 操作系统版本 CentOS  7.4.1708  IP地址 172.168.18.201 网关Gateway 172. ...

  2. 在Mac上使用vs-code快速上手c语言学习(入门文,老鸟退散)

    天下事,合久必分.分久必合,你肯定想不到当你逃离到Mac平台这么多年之后,有一天你会再用微软的产品来写代码 :) 其实微软的产品虽然用户体验总是做不到最好,但整体上的确拉低了行业的进入门槛,对于编程也 ...

  3. EF架构~mysql中时间戳字段被认为是主键自增

    回到目录 如果在mysql中添加了自增字段,用来维护行的版本,那么在EF中会有一个问题,会把它当成是数据表主键,当你的真正主键是自曾时,就会把默认值0拼到生成的SQL语句里,导致你的insert出错, ...

  4. java.lang.OutOfMemoryError: unable to create new native thread问题排查以及当前系统最大进程数量

    1. 问题描述 线上某应用出问题,查看日志 这一组服务器是2台,每台都有.配置为64G,使用7G,空余内存非常多 2. 问题排查 环境变化:程序迁移到新机器,新机器是CentOS 7,程序运行账号由原 ...

  5. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  6. spring-boot-2.0.3启动源码篇四 - run方法(三)之createApplicationContext

    前言 此系列是针对springboot的启动,旨在于和大家一起来看看springboot启动的过程中到底做了一些什么事.如果大家对springboot的源码有所研究,可以挑些自己感兴趣或者对自己有帮助 ...

  7. .Net语言 APP开发平台——Smobiler学习日志:如何在手机上快速实现CandleStickChart控件

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的”Smobil ...

  8. 第5章 支持和咨询选项 - Identity Server 4 中文文档(v1.0.0)

    我们为IdentityServer提供了多种免费和商业支持和咨询选项. 5.1 免费支持 免费支持是基于社区的,并使用公共论坛 5.1.1 StackOverflow StackOverflow 社区 ...

  9. rand函数

    srand()用来初始化随机数种子,rand()用来产生随机数 srand(time()); while(t--){ printf("-> %d %d\n",rand(),r ...

  10. [.NET] 《Effective C#》快速笔记(一)- C# 语言习惯

    <Effective C#>快速笔记(一)- C# 语言习惯 目录 一.使用属性而不是可访问的数据成员 二.使用运行时常量(readonly)而不是编译时常量(const) 三.推荐使用 ...