js -- javascript

ECMAscript5

ECMAscript6 -- vue.js react ..

由三个部分组成

  1. 1 ECMAscript5的核心 js语言
  2. 2 BOM 浏览器对象模型 js操作浏览器,做出对应的一些效果
  3. 3 DOM 文档对象模型 -- HTML文件

js代码引入方式

  1. 三种方式
  2. 1 head标签的script标签里面(alert('xx'), confirm('xx'))
  3. 2 body标签的script标签里面
  4. 3 外部文件引入的方式来使用
  5. a 创建一个.js结尾的文件,写上咱们的js代码
  6. 比如:alert('are you ok?');
  7. b 在想使用这个js代码的html文件中,head标签或者body标签下面或者上面写下面的内容
  8. <script src="01test.js"></script>

js语言基础

变量

  1. var a = 10; 变量定义 var 变量名;

数据类型

number类型(整数,浮点数)

  1. var n = 11;
  2. var n2 = 11.11;
  3. js代码注释 // js代码
  4. 查看数据类型 typeof 变量名;
  5. typeof n; -- number类型
  6. 变量声明,但没有赋值的时候,变量的值为undefined

string类型(字符串)

  1. 示例:
  2. var a = 'alexsb';
  3. var a = new String('ss'); typeof a; -- "string"
  4. 字符串的操作方式
  5. var s = '诱色可餐徐茂洁';
  6. 索引取值: s[1] -- '色'
  7. 移除两端空格: s.trim(); s.trimLeft(); s.trimRight();
  8. var value = name.charAt(index) // 根据索引获取字符
  9. 示例: var s = 'hello'; -- s.charAt(4); -- 'o'
  10. var value = name.substring(start,end) // 根据索引获取子序列,切片
  11. 示例: s.substring(1,3); -- "el"

布尔类型(boolean类型)

  1. var a = true;
  2. var b = false;

undefined和null类型

  1. undefined 变量声明了,但是没有赋值,此时这个变量是undefined类型
  2. null : 变量不用了,就可以给变量赋值为null,--- object类型

数组(array)

  1. var name = [11,22,33];
  2. 数组常用方法:
  3. names[0] // 索引,索引也是从0开始的
  4. names.push(ele) // 尾部追加元素
  5. 示例:a.push('xx'); --  [11, 22, 33, "xx"]
  6. var ele = names.obj.pop() // 尾部移除一个元素
  7. 示例:a.pop(); -- [11, 22, 33]
  8. names.unshift(ele) // 头部插入元素
  9. 示例:a.unshift('ssss'); --  ["ssss", 11, 22, 33]
  10. var ele = obj.shift() // 头部移除一个元素
  11. 示例:a.shift(); --  [11, 22, 33]
  12. names.splice(index,0,ele) // 在指定索引位置插入元素
  13. names.splice(从哪删(索引),删几个(个数),删除位置替换的新元素(可不写,可写多个))
  14. names.splice(index,1,ele) // 指定索引位置替换元素
  15. names.splice(index,1) // 指定位置删除元素
  16. 示例: a.splice(1,2) --  [11, 22, 33]
  17. a.splice(1,1,'xx','oo','asdf'); -- [11, "xx", "oo", "asdf", 33]
  18. names.slice(start,end) // 切片
  19. 示例:a.slice(1,3);--  [22, 33]
  20. names.reverse() // 原数组反转
  21. 示例:a.reverse(); -- [44, 33, 22, 11]
  22. names.join(sep) // 将数组元素连接起来以构建一个字符串
  23. 示例: var a = ['ni','hao','ma',18]
  24. a.join('+'); -- "ni+hao+ma+18"
  25. names.concat(val,..) // 连接数组
  26. 示例: var a = [11,22]; var b = ['aa','bb']
  27. var c = a.concat(b); c -- [11, 22, "aa", "bb"]
  28. names.sort() // 对原数组进行排序
  29. 很尬!
  30. 需要自己定义规则:
  31. function compare(a,b){
  32. return a - b; 当大于0时,两个数据换位置
  33. };
  34. 使用: a.sort(compare); 升序排列

自定义对象(dict)

  1. // 声明
  2. info = {
  3. name:'武沛齐',
  4. "age":18
  5. }
  6. var a = {username:'xx',password:'123'}; //可以不加引号
  7. typeof info;
  8. "object"
  9. // 常用方法
  10. var val = info['name'] // 获取,通过键取值必须加引号,
  11. info.name 也是可以的
  12. info['age'] = 20 // 修改
  13. info['gender'] = 'male' // 新增
  14. delete info['age'] // 删除

html特殊符号

  1. html特殊符号
  2. &nbsp; 空格
  3. &gt; >
  4. &lt; <
  1. list-style: none;和ul标签的type='none'是一样的

流程控制

if判断

  1. if (a == 1){ //判断条件写在小括号里面,大括号里面写条件判断成功后的代码内容
  2. console.log('1111');
  3. }
  4. else{
  5. console.log('222');
  6. }

多条件判断

  1. var a = 0;
  2. if(a > 1){
  3. // console.log('1111');
  4. // var hhhh = document.getElementById('d1');
  5. // hhhh.innerText = '彭于晏';
  6. }else if(a<1){
  7. console.log('2222');
  8. }else {
  9. console.log('3333');
  10. }

运算符

  1. > < == != >= <= === !==
  2. var a = 2;
  3. var b = '2';
  4. a == b; true 弱等于
  5. a === b; false 强等于
  6. a != b; false
  7. a !== b; true

算术运算

  1. + - * / % ++ --
  2. ++ 自增 1
  3. -- 自减 1
  4. var a = 2;
  5. a++ 先执行逻辑 在+1
  6. ++a 先+1 在执行逻辑
  7. 简单示例:
  8. if (++a === 4){
  9. console.log('xxx');
  10. }
  11. else{
  12. console.log('ooo');
  13. };

switch判断

  1. var num = 200;
  2. switch(num++){
  3. case 10:
  4. console.log('未成年');
  5. break;
  6. case 18:
  7. console.log('成年');
  8. break;
  9. case 35:
  10. console.log('油腻老男人');
  11. break;
  12. case 100:
  13. console.log('....');
  14. break;
  15. default:
  16. console.log('太大了');
  17. };

异常捕获

  1. try{
  2. console.log(xx);
  3. }catch(e){
  4. console.log(e);
  5. }
  6. finally{
  7. console.log('sssss');
  8. }

循环

for循环

  1. for (var i=0;i<100;++i){
  2. console.log(i);
  3. };
  4. 循环数组
  5. var d = [11,22,33];
  6. for (var i in d){
  7. if (d[i] === 22){
  8. continue;
  9. // break;
  10. }
  11. console.log(i,d[i]);
  12. }
  13. for (var i=0;i<d.length;i++){
  14. console.log(i,d[i]);
  15. };
  16. 循环自定义对象--python字典
  17. for (var i in d){
  18. console.log(i,d[i]); #不要用d.i来取值
  19. }

while

  1. var a = 0;
  2. while(a<5){
  3. a++;
  4. if (a===2){
  5. continue;
  6. }
  7. console.log(a);
  8. }

js的基础数据类型都有布尔值属性, []--false 0,{},'',undefined,null,NaN

  1. 字符串转数字:
  2. var a = '11';
  3. parseInt(a);
  4. var a = '23abc';
  5. parseInt(a); 23
  6. var a = 'asdfabc';
  7. parseInt(a); -- NAN -- not a number
  8. typeof NaN; -- "number"
  9. NaN === NaN; -- false
  10. NaN == NaN; -- false

函数

普通函数

  1. function f1(a,b){
  2. return a+b;
  3. }
  4. 执行: f1(1,2) -- 3
  5. function f1(a,b){
  6. return a,b;
  7. };
  8. f1(1,2);
  9. 不能返回多个值: 2

匿名函数

  1. var a = function (a,b){
  2. console.log('xxx');
  3. }
  4. var d = {'xx':'oo','f':function (a,b){
  5. console.log('xxx');
  6. }};
  7. 执行:d.f(1,2);

自执行函数

  1. (function () {
  2. alert('自执行函数!')
  3. })()

序列化

  1. var d = {'a':'aa','b':18};
  2. 序列化:
  3. var d_json = JSON.stringify(d); //python json.dumps(d);
  4. 反序列化:
  5. d_json = "{"a":"aa","b":18}"
  6. var reverse_json = JSON.parse(d_json);

BOM对象 浏览器对象模型

弹框

  1. alert('xx');
  2. confirm('are you sure?')

location对象

  1. location.href; 获取当前页面的地址
  2. location.href = 'http://www.baidu.com'; 跳转到这个网址上
  3. location.reload(); 刷新当前页面

计时器

  1. 第一种:一段时间之后执行某个任务
  2. 设置:var t = setTimeout(function(){confirm('你满18岁了吗?')},5000);
  3. var t = setTimeout("console.log('xxx')",1000);
  4. t就是浏览器用来记录你的计时器的标识数字
  5. 清除:clearTimeout(t)
  6. 第二种:每隔一段时间执行某个任务
  7. 设置:var t = setInterval(function(){confirm('弹个框!!')},3000);
  8. 清除:clearInterval(7);

DOM对象

HTML文档(.html文件)

直接查找选择器

  1. html代码:
  2. <div class="c1" id="d1"></div>
  3. <div class="c1 c2" id="d2"></div>
  4. css代码:
  5. .c1{
  6. background-color: green;
  7. height: 100px;
  8. width: 100px;
  9. }
  10. .c2{
  11. background-color: red;
  12. /*height: 100px;*/
  13. /*width: 100px;*/
  14. color:red;
  15. }
  16. 按标签名查找: var divEle = document.getElementsByTagName('div');
  17. id值查找: var d1 = document.getElementById('d1');
  18. 示例: d1.style.height = '600px';
  19. 按类值查找:var a = document.getElementsByClassName('c1');

间接查找选择器

  1. var div1 = document.getElementsByClassName('c1')[0];
  2. div1.nextElementSibling.style.color = 'red'; 找下一个兄弟标签,并改了色
  3. div1.previousElementSibling; 找上一个兄弟
  4. div1.firstElementChild; 找第一个儿子
  5. div1.lastElementChild; 找最后一个儿子
  6. div1.children; 找所有儿子,是一个数组
  7. div1.parentElement; 找到自己的父级标签

文本操作

  1. innerText
  2. 获取文本:
  3. var a = document.getElementById('jd')
  4. a.innerText; 只获取文本内容
  5. 设置文本:
  6. a.innerText = '<a href="">校花</a>';不能识别标签,单纯的文本内容显示
  7. innerHTML
  8. 获取文本
  9. var d = document.getElementsByClassName('c1')[0];
  10. d.innerHTML; 获取的内容包含标签
  11. 设置文本:
  12. d2.innerHTML = '<a href="">校花</a>'; 能够识别标签,生成标签效果

value值操作

  1. input标签
  2. html:
  3. <input type="text" name="username" id="username" >
  4. 示例:
  5. var inp = document.getElementById('username'); 找到标签
  6. inp.value; 获取值
  7. inp.value = '200块!'; 修改值

js补充

class类值操作

  1. var div1 = document.getElementById('d1');
  2. div1.classList; // 获取标签类值
  3. div1.classList.add('c2'); // 添加类值
  4. div1.classList.remove('c3'); // 删除类值
  5. div1.classList.toggle('c3'); // 有就删除,没有就添加
  6. var t = setInterval("div1.classList.toggle('c3')",1000); //定时器添加

HTML的label标签补充

  1. <label >用户名:
  2. <input type="text" name="username" id="username">
  3. </label>
  4. <label for="password">密码: </label>
  5. <input type="password" name="password" id="password">

button补充

  1. 普通按钮,没有提交效果
  2. <input type="button">
  3. <button type="button">注册</button>
  4. 下面两个能够提交form表单数据
  5. <input type="submit" value='登录'>
  6. <button type="submit">注册</button>

js--javascript学习的更多相关文章

  1. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  2. JavaScript学习10 JS数据类型、强制类型转换和对象属性

    JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...

  3. JavaScript学习06 JS事件对象

    JavaScript学习06 JS事件对象 事件对象:当事件发生时,浏览器自动建立该对象,并包含该事件的类型.鼠标坐标等. 事件对象的属性:格式:event.属性. 一些说明: event代表事件的状 ...

  4. JavaScript学习03 JS函数

    JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...

  5. 从 prototype.js 深入学习 javascript 的面向对象特性

    从 prototype.js 深入学习 javascript 的面向对象特性 js是一门很强大的语言,灵活,方便. 目前我接触到的语言当中,从语法角度上讲,只有 Ruby 比它更爽. 不过我接触的动态 ...

  6. JavaScript学习——使用JS完成页面定时弹出广告

    1.获取图片的位置(document.getElementById(“”))  隐藏图片:display:none 定时操作:setInterval(“显示图片的函数”,3000); 2.步骤分析 ( ...

  7. Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”

    Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...

  8. 【干货分享】Node.js 中文学习资料和教程导航

    这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...

  9. JavaScript学习13 JavaScript中的继承

    JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...

  10. JavaScript学习11 数组排序实例

    JavaScript学习11 数组排序实例 数组声明 关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html 数组声明的一种方式: va ...

随机推荐

  1. 监控redis cluster 主从实例是否切换,切换前后对应关系

    需求:编写脚本实现对redis cluster 主从是否发生主从切换进行监控,若发生切换,输出切换前后主从对应关系. 初始化对比文件,仅执行一次,后续不需要在执行,除非该文件不存在. cmd=&quo ...

  2. Selenium实战(一)——浏览器实例

    一.Chrome浏览器 首先,在所有的打开浏览器操作之前,要配置好python环境和selenium,安装好如下图所示:然后可以选择一款适合自己的编辑器,这里用的是pycharm(第一次写博客贴的动图 ...

  3. 消息队列MQ如何保证高可用性?

    保证MQ的高可用性,主要是解决MQ的缺点--系统复杂性变高--带来的问题 主要说一下  rabbitMQ  和  kafka  的高可用性 一.rabbitMQ的高可用性 rabbitMQ是基于主从做 ...

  4. python读取mongodb并提供接口

    # -*- coding: utf-8 -*- import flask, json import time import pymongo client=pymongo.MongoClient(hos ...

  5. grid 布局(2)

    目录 grid 布局(2) grid区域属性 网格线名称 grid-template-areas 属性 grid-auto-flow 容器内子元素的属性 grid 布局(2) grid区域属性 网格线 ...

  6. @RequestBody 和 @RequestParam(“test”) 的区别与联系

    @RequestBody @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的):GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用 ...

  7. Python 测试代码 初学者笔记

    单元测试 每完成一个单元测试,Python都会打印一个字符: 测试通过打印一个句点:测试引发错误打印E:测试导致断言失败打印F 模块unittest import unittest from name ...

  8. Linux之docker搭建

    1.docker运行环境 CentOS7(64-bit),要求系统为64位,系统内核版本为3.10以上 查看系统版本:cat /etc/centos-release 查看系统内核版本:uname -a ...

  9. 【HTML】中国天气天气插件调用

    https://cj.weather.com.cn/ 输入上面的网址自定义即可

  10. StarUML 2下载、安装、破解全过程

      StarUML官方下载地址:  http://staruml.io/download 破解: ​  1.使用Editplus或者Notepad++等特殊的文本编辑器打开 安装位置下/www/lic ...