大天朝教育

[手机文][没有任何文学素养文][可能会不断更新文][作死文]

博主的吐槽范围也有限,所以希望集合大家的力量一起吐槽。想一起吐槽的人可以通过评论的方式或者文章最下的直接加入文章的方式来吐槽

(博主自语)自从进了初中,就年年日日月月都蛋疼,最近高中阶段更蛋疼了,马上要接近高一期中考生更是疼上+疼,光从这周的作业量来说我就必须罢工。不是不爱学习,而是实在不忍心再把自己的生命浪费在学校里无止尽的SB生活上了。(这一段适用于每一次大考前)

生命诚可贵,青年价更高。

中国教育的缺陷越到高等级就体现地越明显,潜移默化地在无意义的竞争中强行慢慢改变了学生以前的理想。给学生也强行灌输了很多不必要的知识。

继续阅读大天朝教育

[javascript]toFixed保留小数位数

这是一个笔记,如果有什么建议或学习意见或错误可以留言提出来。
[爪机博]
[想直接看正文请往最底下看]

之前突发奇想要做个什么东西,需要截断小数点后指定位数的小数,当时还不知道有toFixed这个方法,于是乎我自己想了很多伤资源的方法,比如乘以10的几次方以后舍小数再除回去之类的。这是一段悲剧的思考过程,考虑了一堆事情,为了纪念浪费掉的这段时间[对我来说待在学校里比这还浪费时间],我决定特意为这个方法写一篇博文来mark一下。

似乎是正文:
toFixed是一个Number对象的方法,主要用来保留小数,然后它的用法是

var a=213.1234567898754;
a.toFixed(指定位数);

Ps:
小数最后一位采用四舍五入。
位数为0〜20的整数,参数错误会抛出异常。
如果参数大于le+21(这是啥?)的话,会返回指数形式的数[结果是string类型]。
如果小数本身位数不足指定位数,会用0补足。
默认参数是0,也就是不输入参数的话它的行为是保留整数。

正文似乎结束了。

server-sent 服务器主动发送事件

以前的HTML版本中,要获取实时数据,必须要不断向服务器发出请求来查询有没有新内容,这样不管从建立连接还是等待时间来说都是要多苦逼就有多苦逼啊(微观来说),[最近死在学校里实在没事做就去逛了逛w3,中文的w3school更新比英文版慢了不知多少啊]然后我发现了w3的html专版里多出了一个HTML5 服务器发送事件这东西。
看了一下他的介绍大概知道她是干什么用的了,简单地说就是用javascript建立一个长连接到一个网页脚本,然后脚本就可以按需向浏览器页面主动发送数据。

下面来解释一下工作方式

//这是我整合了w3里的示例代码,添加详细注释来助解
if (typeof(EventSource) !== "undefined") {//检查是否支持服务器推送
	var a = new EventSource("脚本.php");//建立和"脚本.php"的连接
	a.onmessage=function(event) {//接收到消息的事件
		/*这里的event.data存储了从服务器传回来的数据*/
        /*比如alert(event.data)来提示返回的数据*/
	};
    
    a.onopen=function(event){//打开连接时的事件
    /*用event.readyState可以获取此时的状态号*/
        /*建立好连接的时候干些什么*/
    };
    
    a.onerror=function(event){//发生错误时的事件
    /*用event.readyState可以获取此时的状态号*/
        /*发生错误的时候干些什么*/
    };
} else {//不支持推送的话
	alert("您老的浏览器不支持服务器推送");
    
    a.close();//用close()方法可以关闭连接
    a=null;//把a对象清空,让它的空间自动被回收
}

[javascript]设置函数默认参数

在javascript里是不可以用

function a(q=0){..}

这种方式定义参数的默认值的,但是默认值又是一个很有用的东东,它可以设置一些普遍使用的参数来减小使用时候的麻烦。
那么总会有办法解决这种奇葩的问题的。

接下来就是见证奇迹的时刻!

function a(b){
	var c=arguments[1]?arguments[1]:"c的默认值";
	alert(b);
	alert(c);
}

这个时候使用它

a(213,3);//先后跳出提示框:213和3
a(213);//先后跳出提示框:213和"c的默认值"

肿么会这样纸呢?细心的小朋友们应该可以发现这么一个[arguments[1]?arguments[1]:”c的默认值”],而且第一次调用a()的时候输入了两个参数。

原因就是:
首先,js不会因为输入的参数个数和定义时的个数不一样而报错
然后,函数中有一个叫做arguments的数组来保存输入函数的参数

这样就可以知道了,在arguments[1]?arguments[1]:”c的默认值”里,arguments[1]就是输入函数的第二个参数(数组的编号从0开始)(首先在这里假如你知道?:操作符的用法,不知道请先去百度回炉。。)

var c=          //c等于
arguments[1]?   //第二个参数存在吗?存在的话c等于第二个参数的值
arguments[1]:   //第二个参数不存在?
"c的默认值";     //不存在就设置为"c的默认值"

 

感谢@BlackGlory的提醒

function a(b){
b=b||"默认值";
}

 

这种方法更加简便

===========2021/11/27 更新============

现在的js已经可以用文章开头的方法定义默认参数了,只要调用函数时没有填该参数或者参数的值为undefined,都会使用定义的默认参数传入。

判断访问者是否是搜索引擎

有的时候我们需要针对搜索引擎抓取做一些特殊的回应、所以要用到判断是否为搜索引擎的方法,我在网上找了几种来做个笔记,就先不验证效果了。

第一种
来源:php判断是否搜索引擎 – php

function strexists($haystack, $needle) {
       return !(strpos($haystack, $needle) === FALSE);
} 
/*
*检验搜索
*/
function getrobot() {   
    if(!defined('IS_ROBOT')) {   
        $kw_spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';   
        $kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';   
        if(!strexists($_SERVER['HTTP_USER_AGENT'], 'http://') && preg_match("/($kw_browsers)/i", $_SERVER['HTTP_USER_AGENT'])) {   
            define('IS_ROBOT', FALSE);   
        } elseif(preg_match("/($kw_spiders)/i", $_SERVER['HTTP_USER_AGENT'])) {   
            define('IS_ROBOT', TRUE);   
        } else {   
            define('IS_ROBOT', FALSE);   
        }   
    }   
    return IS_ROBOT;   
}

看代码这一种方法是判断来访者是不是某一种浏览器,如果是的话就判断为用户,不是的话就判断为蜘蛛。 继续阅读判断访问者是否是搜索引擎

主题更换记录:佳佳酱才是小黑呢【4】

又到了佳佳酱换主题的日子[其实只是突发奇想来换个主题。。]
本着每次换主题都要做个记录的精神,这次也来记录一下。

上一个主题:佳佳酱才是小黑呢【3】
本个主题:佳佳酱才是小黑呢【4】

旧主题view

新主题view

更新内容:
这次没做什么改进,只是换了个励志背景图,还合并了css里几个相同选择器的样式。

itisso.us

购买了域名itisso.us,既然挖了这个坑就一定要把它填起来(•̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩́ ˑ̫ •̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩̩)。
这次我记得买了是两年,以后再续费的说。
然后我先给它做个building页面告诉大家这里还在制做。
那么我就用有生之年来做它吧。(不知Glory君意下如何),大家也许会在有生之年看到这个作品。

PS:为什么买us呢?因为com和net被一个蛋疼的不知道干什么的还有多重页面跳转的网站占了[还特么是同一家!!!!にまあ!]

[更新:建设标识页已建成]