javascript函数对象

arguments使用

  • 不清楚传递参数的个数

  • 只有函数中才有arguments对象,而且每个函数都内置;好了这个arguments

  • 存储了所有传递过来的实参

  • 伪数组,有length属性

  • 按照索引的方式进行存储

函数声明两种方式

  • 关键字(命名函数)

    function fn(){
        
    }
    fn();
    
  • 函数表达式(匿名函数)

    var fn = function() {
        
    }
    fn();
    

预解析

  • 运行js代码分为两步
    • 预解析:所有的var和function提升到最前面
      • 变量解析:所有的变量声明提升到当前的作用域最前面,不提升赋值操作
    • 代码执行:按照书写的顺序从上往下执行

对象

创建对象

属性和方法

  • 字面量

    • 键值对——属性名(键) : 属性值(对)
    • 每个用逗号隔开
    • 方法的冒号后面跟着匿名函数
    var obj = {
        uname:'zhang',
        age:18,
        sex:'男',
        sayHi:function() {
            console.log('hi~');
        }
    }
    
    • 使用
      • 对象名.属性名;
      • 对象名[‘属性名’];
      • 对象名.方法名( );
  • new Object

    每个属性方法用分号结束

    等号 = 赋值

    var obj = new Object();
    obj.name = '张三丰';
    obj.sayHi = function() {
        console.log('hi~');
    }
    
  • 利用构造函数创造对象(对象的实例化)

    • 构造函数名字首字母要大写
    • 不需要return,可以返回结果
    • new调用构造函数
function Star(uname, age, sex) {
    this.name = uname;//定义属性并赋值
    this.age = age;
    this.sex = sex;
    this.sing = function(song) {//定义方法并赋值
        console.log(song);
    }
}3
var ldh = new Star('刘德华', 18, '男');
判断对象有无属性
// 有一个对象 来判断是否有该属性 对象[ 属性名]var o = {
	age: 18
}
if (o['sex']) 
	console.log('里面有该属性');
else (
	console.log("没有该属性');
}                
new关键字
  • 在内存中创造一个新对象
  • this指向一个新的对象
  • 执行构造函数的代码,将实参赋给给这个新对象添加属性和方法
  • 返回这个新对象

Math.round

不能简单的理解为四舍五入

round方法就是在基础值上加0.5向左取整

round(-1.5) = -1.5 + 0.5 =  -1向左取整就是-1

Data对象

使用前需要提前声明

var date = new Date();
当前时间总毫秒数
var nowTime = +new Date();返回的是当前时间总的毫秒数
var nowTime = +new Date(Time);返回的是用户输入时间总的毫秒数

Array数组对象

翻转排序
// 1.翻转数组
var arr = ['pink', 'red', "blue'];
arr.reverse();
console.log(arr);
// 2.数组排序(冒泡排序)
var arr1 = [134771, 7];
arr1.sort(function(a, b) {
    return a - b; //升序的顺序排列
    return b - a; // 降序的顺序排列
}
获取索引

indexof(数组元素) 作用就是返回该数组元素的索引号 从前面开始查找

它只返回第一个满足条件的索引号

它如果在该数组里面找不到元素,则返回的是 -1

var arr = ['red', 'green' , 'pink'];
console.log(arr.indexOf('blue'));
// 返回数组元素索引号方法 lastIndexof(数组元素) 作用就是返回该数组元素的索引号 从后面开始查找
var arr = ['red','green' ,"blue','pink' ,'blue'];
console.log(arr.lastIndexof('blue')); // 4
转换字符串
// 1.tostring() 将我们的数组转换为字符串
var arr = [1, 2, 3];
console.log(arr.tostring()); // 1,2,3
// 2.join(分隔符)
var arr1 = ['green','blue', 'pink'];
console.log(arr1.join()); // green,blue,pink
console.log(arr1.join('-')); // green-blue-pink
console.log(arr1.join('&')); // green&blue&pink

字符串

返回位置
// 字符串对象 根据字符返回位置 str.indexof("要查找的字符 ,[起始的位置])
var str =改革春风吹满地,春天来了; 
console.log(str.indexof("春'));
console.log(str.indexof("春',3)); // 从索引号是 3的位置开始往后查找
根据位置返回字符
// 1.charAt(index) 根据位置返回字符
var str = 'andy';
console.log(str.charAt(3));// 遍历所有的字符
for (var i = 0; i < str.length; i++) {
	console.log(str.charAt(i));
}
// 2.charCodeAt(index) 返回相应索引号的字符ASCII值 目的: 判断用户按下了那个键
console.log(str.charCodeAt(0)); // 97
// 3.str[index] H5 新增的
console.log(str[0]); // a
替换字符
// 1.替换字符 replace('被替换的字符’,'替换为的字符') 它只会替换第一个字符
var str = andyandy';
console.log(str.replace('a','b'));
// 有一个字符串abcoefoxyozzopp’ 要求把里面所有的 o 替换为 *
var str1 = 'abcoefoxyozzopp';
while (str1.indexof('o') !== -1){ 
	str1 = str1.replace('o', '*');
}
console.log(str1); 
转换为数组
//split('分隔符')
var str2 = 'red,pink,blue'; console.log(str2.split(',"));                       var str3 ='red&pink&blue';                         
                                                   console.log(str3.split('&'));

DOM操作

getElementById获取元素
<div id="time">2019-9-9</div>
<script>
// 1.因为我们文档页面从上往下加载,所以先得有标签 所以我们script写到标签的下面
// 2.get 获得 element 元素 by 通过 驼峰命名法
// 3.参数 id是大小写敏感的字符串
// 4.返回的是一个元素对象
var timer = Idocument.getElementById('time');
console.log(timer);
console.log(typeof timer);
// 5.console.dir 打印我们返回的元素对象 更好的查看里面的属性和方法
console.dir(timer);
</script>
getElementsByTagName获取某些元素
var ol = document.getElementById('ol');
console.log(ol.getElementsByTagName( 'li'));
getElementsByClassName
document.getElementsByClassName('类名');
// 根据类名返回元素对象集合
querySelector
document .querySelector('选择器');
// 根据指定选择器返回第一个元素对象
querySelectorAll
document.querySelectorAll('选择器')
// 根据指定选择器返回
获取body元素
// 1.获取body 元素
var bodyEle = document.body;
console.log(bodyEle);console.dir(bodyEle);
获取html元素
// 2.获取htm1 元素
var htmlEle = document.documentElement;
console.log(htmlEle);

事件

三要素

事件源

事件类型

事件处理程序

<script>
//(1) 事件源 事件被触发的对象 谁 按钮
var btn = document.getElementById( 'btn' );
//(2) 事件类型 如何触发 什么事件 比如鼠标点击(onclickD 还是鼠标经过 还是键盘按下
//(3) 事件处理程序 通过一个函数赋值的方式 完成
btn.onclick = function() {
	alert('点秋香');
}
</script>
常见的鼠标事件

鼠标事件
onclick

鼠标点击左键触发

onmouseover

鼠标经过触发

onmouseout

鼠标离开触发

onfocus

获得鼠标焦点触发

onblur

失去鼠标焦点触发

onmousemove

鼠标移动触发

onmouseup

鼠标弹起触发

onmousedown

鼠标按下触发

改变元素内容
btn.onclick = function() {
	// div.innerText = '2019-6-6';
    div.innerText = getDate();
}

innerText 和 innerHTML的区别

// 1.innerText 不识别htm1标签 非标准 去除空格和换行
var div = document.querySelector( 'div');
div.innerText ='<strong>今天是:</strong> 2019';
// 2.innerHTML 识别htm标签 W3C标准 保留空格和换行的
div.innerHTML =<strong>今天是: '</strong> 2019';
// 这两个属性是可读写的 可以获取元素里面的内容
var p = document.querySelector('p');
console.log(p.innerText);console.log(p.innerHTML);
修改元素属性
<script>
// 修改元素属性 src
// 1. 获取元素
var ldh = document.getElementById( 'dh');
var zxy = document.getElementById( 'zxy' );
var img = document.querySelector( 'img');
// 2.注册事件 处理程序
zxy.onclick = function() {
	img.src = 'images/zxy.jpg';
    img.title =张学友思密达';
}
ldh.onclick = function() {
	img.src =images/ldh .jpg';
    img.title =刘德华';
}
</script>
还有如
input.value = 'sdsadas';
this.disabled = true;
修改样式
<style>
div {
	width: 200px;
	height: 200px;
    background-color:pink;
}
</style>
<script>
// 1. 获取元素
var div = document.querySelector('div');
// 2.注册事件 处理程序
div.onclick = function() {
// div.style里面的属性 采取驼峰命名法
this.style.backgroundColor = 'purple';
this.style.width = '250px';
}
自定义属性操作
<script>
    var div = document.querySelector('div') ;
	// 1.获取元素的属性值
	// (1) element.属性
	console.log(div.id);
	//(2) element.getAttribute(’属性) get得到获取 attribute 属性的意恩 我们程序员自己添加的属性我们称为自定义属性 index
    console.log(div.getAttribute('id'));
	console.log(div.getAttribute('index'));
	// 2.设置元素属性值
	// (1) element.属性= 值!
	div.id = 'test';//id值
	div.className = 'navs';//类名
	// (2) element.setAttribute(属性’,值); 主要针对于自定义属性
	div.setAttribute('index'2);
	div.setAttribute('class',footer'); // class 特殊 这里面写的就是class 不是className
</script>
  • 设置H5自定义属性
H5规定自定义属性data-开头做为属性名并且赋值
比如 <div data-index="1"></div>

或者使用JS 设置
element.setAttribute( 'data-index', 2)
<div getTime="20” data-index="2" data-list-name="andy"></div>
<script>
var div = document.querySelector( 'div');
//console.log(div.getTime);
console.log(div.getAttribute('getTime'));
div.setAttribute('data-time'20);
console.log(div.getAttribute('data-index'));
console.log(div.getAttribute('data-list-name'));
// h5新增的获取自定义属性的方法 它只能后去data-开头的
// dataset 是一个集合里面存放了所有以data开头的自定义属性
console.log(div.dataset);
console.log(div.dataset.index);
console.log(div.dataset['index']);
// 如果自定义属性里面有多个-链接的单词,我们
console.log(div.dataset.listName);
console.log(div.dataset['listName']);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值